5
我想通过gcc的-Dmacro = value选项将C宏的值传递给预处理器。但是,它并没有达到我的预期。这是我的代码的基础:为什么不是gcc从命令行传递宏值?
#define T0 0
#define T1 0
#define T2 0
#define T3 0
int main(){
int f[9];
start(f[T0], f[T1], f[T2], f[T3]);
return 0;
}
运行gcc -DT3=1 -E
显示预处理器不会取代T3的初始值。我错过了什么,价值如何正确传递?
我刚刚遇到了这个问题,并且有点惊讶b/c我一直认为命令行定义应该覆盖内联定义。我依稀记得微软的编译器是这样做的,但不幸的是,我有一段时间没有访问权限。我有MSVC的任何人都可以测试并发布信息,那将很好。 – ysap 2012-09-08 00:30:39