我有一个像这样的示例代码:
int var;
var = MACRO_A;
我希望MACRO_A
的定义如下:
#define MACRO_A 1234
但是,我可以不找到源代码中任何位置定义的MACRO_A
,但我可以成功构建代码,那么var
的值是多少?结束?
编译器是gcc。
答案 0 :(得分:2)
但是,我找不到源中任何地方定义的MACRO_A 代码,但我可以成功构建代码,所以它的价值是什么 最后的var
它存在于某处或无法编译。也许它是直接在命令行上定义的? (-DMACRO_A
)
答案 1 :(得分:1)
在使用-D
选项进行编译时,可能已经传递了该宏。
#include <stdio.h>
int main()
{
int i = MACRO_A;
printf("MACRO_A : %d \n", i);
return 0;
}
输出:
$ gcc macro.c -D MACRO_A=10
$ ./a.out
MACRO_A : 10
$