最近在看《c专家编程》,上边的一个小启发,在此做个笔记,学习一下。
strcmp()函数用于比较两个字符串,但有点小纠结的是当两个字符串相等时,返回0。于是就有这样的代码出现:
if(!strcmp(str,"volatile")) return QUALIFIER;
这多少有点令人费解,相等时再取非,才符合我们的逻辑。
使用宏定义:
#define STRCMP(a,R,b) (strcmp(a,b) R 0)
然后上边的代码就可以这样写:
if(STRCMP(str,==,"volatile"))
return QUALIFIER;
看起来符合逻辑了