我想做这样的事

#define GETCART1 0;
#define GETCART2 1;

void helper(int *Array,int length,int counter, int option){
    if (length > counter){
        switch(option){
        case (GETCART1) :

            break;
        }//switch
    }
}

当我用GETCART1替换0时,我得到编译错误,它工作正常。为什么?

最佳答案

从定义中删除分号。

#define GETCART1 0;
                  ^ Drop this

如果不这样做,在预处理器完成时,代码将如下所示:
switch(option){
case (0;) :
       ^
    break;
}

10-08 09:01