1. strcmp() 函数用于比较两个字符串,但存在一个问题是,当两个字符串相等时,返回值为0,如下的使用可能会使人费解
if(!strcmp(s, "volatile")) return QUALIFIER;
返回值 0, 使条件语句结果为假,所以我们不得不对其取反,得到想要的结果。
解决方法:建立宏定义:
#define STRCMP(a, R, b) (strcmp(a, b) R 0)
使用时的方法可以很自然的写成
if (STRCMP(s, ==, "volatile"))

5149

被折叠的 条评论
为什么被折叠?



