标签:
考虑以下情形:
#define func(type, x, y)
int a = 1;
int b = 2
if (a > b)
func(int, a, b);
else{type tmp = x; x = y; y = tmp;}
std::cout<<"Hello, World!"<<std::endl;
这种情况下, func 被调用的时候,语句的末尾有个分号。编译预处理以后会变成如下情况:
int a = 1;
int b = 2
if (a > b)
{type tmp = x; x = y; y = tmp;};
else
std::cout<<"Hello, World!"<<std::endl;
编译时会报错
参考链接:http://www.cnblogs.com/bastard/archive/2011/11/24/2262195.html
标签:
原文地址:http://my.oschina.net/u/1176097/blog/512665