标签:io ar 使用 sp bs ef c nbsp har
#include <stdio.h>
#define min(a,b) ((a)<=(b)?(a):(b))int main (int argc, char **argv)
{
char *p = "abcdefgh";
printf("%c\n",min(*p++,‘c‘)); //宏被扩展为 ( *p++ <= c ? *p++:c )
return 0;
}
输出
b
我们可以看到,宏只是简单的替换,这个例子如何避免副作用呢?可以使用if-else 语句改写。
标签:io ar 使用 sp bs ef c nbsp har
原文地址:http://www.cnblogs.com/zhanbiqiang/p/4109378.html