我正在尝试使用gcc的-Dmacro = value选项将C宏的值传递给预处理器。但是,它并没有达到我的预期。这是我的代码的基础:
#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的原始值。我缺少什么,价值如何正确传递?
答案 0 :(得分:7)
Afaik该开关将定义一个宏,但是你的代码然后将它重写为0.从代码中删除该定义或用ifdef将其包围,它应该没问题。