在C中使用#define和switch状态

时间:2017-01-28 23:00:16

标签: c switch-statement c-preprocessor

我不确定为什么我不允许这样做。有人可以解释如何解决编译错误。我是C的新手,来自Java。

错误:在';'之前预期':'或'...'令牌

#define NORTH 1;

int main (void){
switch (functionCallThatReturnsAnInt()){
    case NORTH : //compile time error here
        printf("NORTH");
        break;
    case 2 : // no compile time error
        printf("2");
        break;
    //removed rest to reduce clutter
    }
}

int functionCallThatReturnsAnInt(void){
    return NORTH;
}

1 个答案:

答案 0 :(得分:1)

对于未来的观众:

如上所述@PSkocik和@BLUEPIXY在使用define时不用分号。

而不是

#define NORTH;

使用

#define NORTH