C 如何使用#define从文本文件定义变量值?
我在代码中的某个地方使用了C 如何使用#define从文本文件定义变量值?,c,variables,global-variables,C,Variables,Global Variables,我在代码中的某个地方使用了int-array[L]。我指定数组长度:#定义L64。一切都好。但是,如果我想在(外部)文本文件中而不是在代码中指定此值,该怎么办?如何将文本文件读入#define 但是,如果我想在(外部)文本文件中而不是在代码中指定此值,该怎么办 我可以想到两种方法来设置宏的值 用代码定义它。文本文件不能用于此目的 在编译器中将其定义为命令行选项(-DL=64) 如果使用make,则可以在相应的Makefile中定义该选项 如果您使用IDE,则需要在IDE提供的各种设置中找出如何做
int-array[L]
。我指定数组长度:#定义L64
。一切都好。但是,如果我想在(外部)文本文件中而不是在代码中指定此值,该怎么办?如何将文本文件读入#define
但是,如果我想在(外部)文本文件中而不是在代码中指定此值,该怎么办
我可以想到两种方法来设置宏的值
-DL=64
)
如果使用make
,则可以在相应的Makefile
中定义该选项
如果您使用IDE,则需要在IDE提供的各种设置中找出如何做到这一点-DL=64
)
如果使用make
,则可以在相应的Makefile
中定义该选项
如果您使用IDE,则需要在IDE提供的各种设置中找出如何做到这一点读取文本文件,然后
malloc
数组:
int *array;
int L;
int main(void)
{
L = readLengthFromTextFile();
array = malloc( L );
if ( array == NULL ) {
printf( "array allocation failed\n" );
exit(1);
}
// use the array as if declared as: int array[L];
free( array );
}
读取文本文件,然后
malloc
数组:
int *array;
int L;
int main(void)
{
L = readLengthFromTextFile();
array = malloc( L );
if ( array == NULL ) {
printf( "array allocation failed\n" );
exit(1);
}
// use the array as if declared as: int array[L];
free( array );
}
我不建议在源代码之外定义宏值。如果你必须这样做,你必须以只读方式打开文件并解析文本文件以获得你的值。你的代码不会编译,因为L不会预先处理为一个整数。顺便说一下,头文件是一个外部文本文件。如果需要动态调整数组大小,则此操作将不起作用。大多数编译器都允许您在命令行上指定宏定义。通常是-D。因此,在Makefile中,您需要读取外部文件,并解析出L的值。然后将该值指定为-D编译器标志的参数。你很快就会成为Makefile大师。检查一下:我不建议在源代码之外定义宏值。如果你必须这样做,你必须以只读方式打开文件并解析文本文件以获得你的值。你的代码不会编译,因为L不会预先处理为一个整数。顺便说一下,头文件是一个外部文本文件。如果需要动态调整数组大小,则此操作将不起作用。大多数编译器都允许您在命令行上指定宏定义。通常是-D。因此,在Makefile中,您需要读取外部文件,并解析出L的值。然后将该值指定为-D编译器标志的参数。你很快就会成为Makefile大师。看看这个: