✨博客主页:何曾参静谧的博客
📌文章专栏:「C/C++」C/C++程序设计
目录
- 术语说明
- 宏定义 #define
- 定义常量
- 定义函数
- 定义代码块
- 常用标识符
- 用宏包含头文件
术语说明
定义宏
是一种预处理器指令,它可以将一些代码片段或者常量直接替换为另一些内容,在编译过程中被展开为相应的代码或者值。通过定义宏,我们可以简化编写代码的工作量,并且通过修改宏的定义,可以方便地进行代码的修改。例如,我们可以使用#define来定义宏:
宏定义 #define
注意事项:
- 宏定义的名称通常使用
大写字母
,并使用下划线来分隔单词。- 宏定义必须以
#define
开头,定义的常量、函数、代码块等必须是合法的C语句。- 宏定义可以包含参数,从而使得宏可以在不同的场景下进行重用。
- 宏定义可以使用反斜杠(
\
)对代码进行换行,以便于阅读和维护。- 宏定义在代码被编译之前就会被预处理器处理,所以宏定义是一种文本替换的手段,替换的过程是简单的字符串替换,因此要特别注意宏定义带来的潜在问题,比如优先级、参数的多次计算等等。
定义常量
这个宏定义了一个名为 PI 的常量,并将其值设定为 3.1415926。
例子中PI会被替换成3.14159
#define PI 3.1415926
定义函数
这个宏定义了一个名为 MAX 的函数,并使用三目运算符定义了其功能,即返回两个参数中的较大值。
例子中,MAX(a,b)会被替换成((a)>(b)?(a):(b))。
#define MAX(a, b) ((a) > (b) ? (a) : (b))
定义代码块
在预处理过程中,宏会被直接替换成相应的值
#define DO_SOMETHING { \
printf("Hello, "); \
printf("world!"); \
}
常用标识符
__FILE__:文件名
__LINE__:行号
__FUNCTION__:函数名
__DATE__:编译日期
__TIME__:编译时间
_MSC_VER:编译器版本号
用宏包含头文件
#define INCLUDE_STRING_HEADERS \
#include <iostream> \
#include <fstream> \
#include <cstring>