0
点赞
收藏
分享

微信扫一扫

C++宏定义学习笔记


基本语法

#if
...
#elif
...
#else
...
#endif

多行宏定义

#define

把宏定义参数变成字符串

#define

相当于给x加上双引号。

可用于debug时打印变量名

#if
#include <iostream>
#define
#else
#define
#endif

把宏定义参数变成字符

#define

相当于给arg加上单引号。

可变宏参数

#define

效果:

p(fasd, 123);

输出:

fasd, 123

把宏定义参数连接起来

#define

则connect(abc, def)相当于abcdef。

例子:

#include <iostream>

using namespace std;

#define
#define

#define

int main() {
cout << test(1) << endl << test(2) << endl;

return 0;
}

输出:

1
2

重要性质

如果​​x​​​和​​y​​​里有一个为空,则​​x ## y​​为空。

#ifdef的与或

参考:​​https://cloud.tencent.com/developer/ask/72838​​

#if

应用:宏定义实现debug语句

DeBuG Print

#define

如果可变参数个数为0,则​​__VA_ARGS__​​​为空,所以​​,##__VA_ARGS__​​​也为空。这样前面的逗号就被消掉了,不对造成编译错误。
用法:

dbgp("test = %d", 13);
dbgp("test");

输出:

DEBUG: test = 13
DEBUG: test

常用预定义宏名

​__LINE__​​​: 当前行在当前源文件所处的行数。是一个数字。
​​​__FILE__​​​: 当前源文件名。是一个字符串。
​​​__FUNCTION__​​: 当前的函数名称。是一个字符串。

可用于打印调试信息。

#define

用法:

dbgwarn("2333");

输出:

In file test.c, line 11, warning: 2333


举报

相关推荐

0 条评论