目录
#define定义标识符常量
#define定义宏
#define定义标识符常量
文章图片
先用#define把MAX定义为1000,这里MAX是一个标识符常量(本质上是一个常量),所有使用MAX的地方都会被自动替换为1000。这样做的好处是如果这个常量在程序中多次使用,那么修改起来非常方便,只需要把#define那行代码修改即可。比方说如果要把程序中所有的MAX改成100,只需要把#define MAX 1000改成#define MAX 100即可。
一般习惯把标识符常量所有字母大写。
#define定义宏
文章图片
用#define可以把ADD(x, y)定义为((x)+(y))。其作用是简化代码,把所有需要两个表达式相加的地方都写成ADD的形式。所有的ADD(x, y)都会自动替换成((x)+(y))。其中x和y为任意的表达式。
一般宏习惯用全大写的形式,这样可以和函数区分开来。
注意上面的ADD(x, y)中的x和y都是表达式,所以要用括号括起来。计算的结果也是一个表达式,也要用括号括起来。如果没有括号,计算结果就不对了。
文章图片
【C语言|【C语言】#define 定义常量和宏】本质上是把所有的ADD(2, 3)都替换成了2+3,所以10 * ADD(2, 3)就自动替换成10*2+3,也就是23。
推荐阅读
- C语言拯救者|C语言拯救者 番外篇 (函数栈帧的创建和销毁讲解)
- C语言系统学习学习手册|【C语言知识精讲③】函数栈帧的创建和销毁(全程图解)
- C语言基础|【C语言】函数栈帧的创建与销毁
- C语言|C语言实现扫雷游戏+优化(递归)
- c语言|初识c语言5——12.#define定义常量和宏、13.指针、14.结构体(struct关键字)
- c语言|链表刷题笔记(较难篇) (c实现)(跑路人笔记)
- c语言|(C语言底层逻辑)函数栈帧的创建和销毁讲解
- C语言|vscode配置C语言环境
- YY|【C语言】 扫雷游戏(保姆级的实现过程)