如果已经有C语言中预处理器的学习经验,且不打算复习一下,那么基本上可以跳过本章节中的内容了。因为C++中(预处理)宏的定义和使用与C语言中的基本一致。除此之外,在介绍完C++中的一些预处理指令之后,会专门用一个章节的篇幅来介绍一下预处理器及其作用的机制,个人认为,先介绍完预处理指令对理解预处理器有很大的帮助,反过来,对预处理器有所理解,对预处理指令的用法也会有更深层次的思考。
#define预处理
C++中,可以是用#define预处理指令来进行宏的定义。什么是宏呢?大致可以理解为C++中的一些符号常量,可以在C++编译器编译代码之前展开,进行代码中的文本替换(进一步的理解可参考下方的实例代码)。
#define定义宏的语法
#define macroName macroExpression
提示:宏的定义的语句末尾不使用“;”。
宏语法解析
macroName:宏名称标识符,如果是一般的常量的话(非宏函数之类的),那么会“约定俗成”地使用大写来表示;
macroExpression:为宏展开后用于替换的文本,可以是任意的C++表达式或语句;
宏的定义一般定义在C++的主函数之前,include包含的头文件之下;
宏的使用
C++中宏的使用方法与使用其它的常规的变量没什么区别,直接使用宏名称即可。
宏定义实例代码
如下实例代码,代码编译之前,会使用30和20(替换文本)来替换主函数内部的WIDTH和HEIGHT,然后再进行编译:
#include <iostream>
using namespace std;
#define WIDTH 30
#define HEIGHT 20
int main(){
// 计算一个三角形的面积
double area = WIDTH * HEIGHT / 2.0;
cout << "三角形的面积为:" << area << endl;
return 0;
}
代码编译运行后,得到输出:
三角形的面积为:300
免责声明:内容仅供参考,不保证正确性! |