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

评论