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就是错误的

posted @ 2020-08-03 23:19  make_wheels  阅读(111)  评论(0)    收藏  举报