1、使用宏定义,代码可以用更自然的风格来表示它的意思。
strcmp()函数用来比较两个字符串,当两个字符相等时函数的返回值为0.这个问题会导致令人费解的代码:
if (!strcmp(s, "volatile")
{
return QUALIFIER;
}
返回值零使条件语句的结果为假,所以我们不得不对其取反。
建立宏可以以自然的风格来编写代码
#include <string.h>
#define STRCMP(a, R, b) (strcmp(a, b) R 0)
if (STRCMP(s, ==, "volatile"))
{
return QUALIFIER;
}