c++的宏举例和理解

发布时间:2024年01月15日

宏提供了一种机制,能够使你在编译期替换代码中的符号或者语句。当你的代码中存在大量相似的、重复的代码时,使用宏可以极大的减少代码量,便于书写。?

// 定义圆周率
#define PI 3.14159265
// 定义一个空指针
#define NULL ((void*)0)
// 定义一个宏的名字为 SYSTEM_API,但是没有值
#define SYSTEM_API
double perimeter = diameter * 3.14159265;
class SYSTEM_API CSystem;

//等价
double perimeter = diameter * PI;
class CSystem;
//编译的替代性

?

#define MUL(x, y) ((x) * (y))
int ret = MUL(2 + 3, 4);
int ret = ((2 + 3) * (4));
多加几个括号防止运算失误
如:
#define MUL(x, y) x * y
int ret = MUL(2, 3);   ==> int ret = 2 * 3;

符号###

//#转化为字符串
#define STRING(x) #x
const char * str = STRING(test);
// str的内容就是"test"


##符号会连接两边的值,像一个粘合剂一样,将前后两部分粘合起来,从而产生一个新的值,例如
#define VAR(index) INT_##index
int VAR(1);
// 宏被展开后将成为 int INT_1;

文章来源:https://blog.csdn.net/qq_72985002/article/details/135611413
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。