先说结论
#define 可以将一文本进行替换,有时用于常量的定义
注:用#define时,该行末尾不用加分号(;)。
细说
凡是以 # 开头的均为预处理指令,预处理又叫预编译。
预编译不是编译,而是编译前的处理。这个操作是在正式编译之前由系统自动完成的。
故#define也是预编译指令
下面将讲解以下他的两个功能。
一:将文本进行替换
由上面我截取的文章的截图,可以很清晰地看出,#define的文本替换功能。
#define CASE break;case 表示用字符CASE来替换文本“break;case”。
所以在switch-case语句中,除了case 1,其他的case连同上一个case语句最末尾的break,可以连起来用字符CASE代替(如截图)
二:定义常量。
上图截取于王道在B站免费分享的数据结构课程。
由上图我们可以很清晰看到,通过#define定义了一个常量MaxSize来表示数组最大的长度。
注:用#define定义常量的时候,不用说明该常量的数据类型。
资料参考
本文参考了以下文章中的思路和知识,并且摘抄了部分句子或者截取了部分图片。
在这里放出原作者的文章链接以示尊重。
C语言常量定义
#define 宏定义看这一篇文章就够了
C语言 define 定义常量 - C语言零基础入门教程
王道计算机考研 数据结构