为什么gcc不是从命令行传递宏值?

时间:2012-03-30 18:51:36

标签: gcc

我正在尝试使用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的原始值。我缺少什么,价值如何正确传递?

1 个答案:

答案 0 :(得分:7)

Afaik该开关将定义一个宏,但是你的代码然后将它重写为0.从代码中删除该定义或用ifdef将其包围,它应该没问题。