环境:CLion2021.3;64位macOS Big Sur
文章目录
「地表最强」C语言(一)基本数据类型
「地表最强」C语言(二)变量和常量
「地表最强」C语言(三)字符串+转义字符+注释
「地表最强」C语言(四)分支语句
「地表最强」C语言(五)循环语句
「地表最强」C语言(六)函数
「地表最强」C语言(七)数组
「地表最强」C语言(八)操作符
「地表最强」C语言(九)关键字
「地表最强」C语言(十)#define定义常量和宏
「地表最强」C语言(十一)指针
「地表最强」C语言(十二)结构体、枚举和联合体
「地表最强」C语言(十三)动态内存管理,含柔性数组
「地表最强」C语言(十四)文件
「地表最强」C语言(十五)程序的环境和预处理
「地表最强」C语言(十六)一些自定义函数和宏
「地表最强」C语言(十七)阅读程序
十、#define定义常量和宏
define是一个预处理指令而非关键字。
- define定义符号常量
#define MAX 10000
- define定义宏
#define ADD(X,Y) ((X)+(Y))
int main()
{
printf("%d\n", ADD(2, 3));
printf("%d\n", 4*ADD(2, 3));
}
注意,宏起到的作用实际上是替换,其中X与Y均为表达式,不难理解需要各自加括号为(X)和(Y);
而整体加括号是因为如果不加括号,带入line2的printf将会是4*(2)+(3),结果为11,显然与我们想要的结果不符;
加上括号后的效果4*((2)+(3)),结果为20,正确。