c – 为什么#define INVALID_VALUE -999;使用时会出现语法错误?
发布时间:2020-12-16 06:47:46 所属栏目:百科 来源:网络整理
导读:我试图比较C中定义的常量,并将我的程序简化为以下内容: #include "stdio.h"#include "stdlib.h"#define INVALID_VALUE -999;int main(void){ int test=0; if(test==INVALID_VALUE) //The error line.. return INVALID_VALUE; return 0;} 当我使用gcc进行编
我试图比较C中定义的常量,并将我的程序简化为以下内容:
#include "stdio.h" #include "stdlib.h" #define INVALID_VALUE -999; int main(void) { int test=0; if(test==INVALID_VALUE) //The error line.. return INVALID_VALUE; return 0; } 当我使用gcc进行编译时,它会在’;’token’之前发出错误“error:expected’)’. 有什么理由不能这样做吗? 解决方法
从INVALID_VALUE定义中删除分号.
宏被词法(逐个字符)替换,而不了解它们周围的语法.您的宏INVALID_VALUE设置为-999;,因此您的if行将宏扩展为: if (test==-999;) 这是无效的C语法. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |