1

我有一个这样的示例代码:

int var;
var = MACRO_A;

我希望MACRO_A已经像这样定义:

#define MACRO_A    1234

但是,我在源代码的任何地方都找不到定义MACRO_A,但是我可以成功构建代码,那么最后的值是什么var

编译器是 gcc。

4

2 回答 2

2

但是,我在源代码的任何地方都找不到定义的MACRO_A,但是我可以成功构建代码,那么最后var的值是什么

它在某处,否则无法编译。也许它是直接在命令行上定义的?( -DMACRO_A)

于 2012-04-26T18:21:09.973 回答
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 
$ 
于 2012-04-26T18:25:35.077 回答