#define 名字 值 (没有分号)
名字必须是一个单词,值可以是任意的,以#开头的语句都是编译预处理指令,他们不是c的语句,但c语言又离不开他们,
#define Status printf("123");\
printf("456")
如果宏的定义需要分行,在行末尾加上\即可。
带参数的宏:
有点类似于函数,但宏不带数据的类型,
如:#define cube(x) ((x)*(x)*(x))
即计算x的三次方
但是宏的格式很容易出错,保证两点即可:1.值的部分必须有括号,2.参数出现的地方必须有括号
另外,在vs2013里printf(“%s\n”,_FILE_); 显示文件的路径,类似的还有_DATA_,_TIME_,_LINE_.
宏还可以嵌套宏,这点有点像函数,#define min(a,b) ((a)>(b)?(b):(a))
宏后面的分号,如果遇到if和else语句千万不要加,因为你加了;,就相当于在if语句后加了俩分号,else语句就会报错。