c的宏
c的宏
1. 前提
除非有必要使用宏(本质预编译期间进行宏展开),否则:
如果是 变量可以使用 const或者枚举常量代替
如果是 函数可以使用内敛来代替,只要适合宏函数的一般都适合内联函数
2. 宏的应用类型的使用
1. 宏变量
#define N 100
在预编译将使用N的地方替换为100
2. 宏表达式
#define M (N + 1) //结论: 宏值如果是表达式,表达式两边尽量加( )
3. 宏的多条语句
#define printStr(array) do { \
printf("value is %s\n", array); \
printf("end print"); \
}while(0)
注意上面的 \ ,作用是连接下一行到上一行的语句
由于宏是文本替换,要求语句只能有一行,当一行放不下,为了美观和查看,使用 \,要求\前有空格,和前面语句分隔开
编译器会把\剔除,把后一行提取到当前\所在行进行编译,接续单词的时候\后不能有空格比如 in\ t就是错误的
一个圆,圆内是你会的,圆外是你不知道的。而当圆越大,你知道的越多,不知道的也越多了

浙公网安备 33010602011771号