很少用#define来定义函数块,一是觉得麻烦,二是觉得里面可能有歧义。一般都用inline函数。
但是最近修改别人的c程序的时候,必须修改一下他写的#define函数的实现。一改不要紧,发现报了很多编译错误。才发现自己对这个语法还不是很了解。简单示例一下:
/*宏定义中允许包含两行以上的命令的情形,此时必须在最右边加上"\"*/
/* 并且 \ 的后面要紧跟回车,不能有空格,否则会报错 */
#include "stdio.h"
#define swap(a,b)
{ \
int t;\
t=a;\
a=b;\
b=t;\
}
评论