CC++编程中宏定义的详细解析是怎样的?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2528个文字,预计阅读时间需要11分钟。
前言(Macro)本质上是代码片段,通过别名来使用。在编译前的预处理中,宏会被替换为实际所指代的具体代码片段,即下面的+Preprocessor+处理的 部分。C/C++代码编译过程包括:+C/C++代码编译过程+ - +图片来自+
前言
宏(Macro)本质上就是代码片段,通过别名来使用。在编译前的预处理中,宏会被替换为真实所指代的代码片段,即下图中 Preprocessor 处理的部分。
C/C++ 代码编译过程 - 图片来自 ntu.edu.sg
根据用法的不同,分两种,Object-like 和 Function-like。前者用于 Object 对象,后者用于函数方法。
C/C++ 代码编译过程中,可通过相应参数来获取到各编译步骤中的产出,比如想看被预处理编译之后的宏,使用 gcc 使加上 -E 参数。
$ gcc -E macro.c
宏的定义
通过 #define 指令定义一个宏。
#define NAME_OF_MACRO value
比如,以下代码定义了一个名为 BUFFER_SIZE 的宏,指代 1024 这个数字。
本文共计2528个文字,预计阅读时间需要11分钟。
前言(Macro)本质上是代码片段,通过别名来使用。在编译前的预处理中,宏会被替换为实际所指代的具体代码片段,即下面的+Preprocessor+处理的 部分。C/C++代码编译过程包括:+C/C++代码编译过程+ - +图片来自+
前言
宏(Macro)本质上就是代码片段,通过别名来使用。在编译前的预处理中,宏会被替换为真实所指代的代码片段,即下图中 Preprocessor 处理的部分。
C/C++ 代码编译过程 - 图片来自 ntu.edu.sg
根据用法的不同,分两种,Object-like 和 Function-like。前者用于 Object 对象,后者用于函数方法。
C/C++ 代码编译过程中,可通过相应参数来获取到各编译步骤中的产出,比如想看被预处理编译之后的宏,使用 gcc 使加上 -E 参数。
$ gcc -E macro.c
宏的定义
通过 #define 指令定义一个宏。
#define NAME_OF_MACRO value
比如,以下代码定义了一个名为 BUFFER_SIZE 的宏,指代 1024 这个数字。

