【C++】define宏定义

define宏定义

define是C语言中的一个宏定义命令,它用来将一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本;

cpp 复制代码
define <宏名> (<参数表>) <宏体>

操作符

  • :可将参数转化为字符串;

cpp 复制代码
#include <iostream>
using namespace std;

# define print(xx , a , b) cout << #xx << a + b << endl;

int main()
{
    print(加法:, 5 , 6);
}

编译输出:

cpp 复制代码
加法:11
  • ##:连接两个参数成为一个整体
cpp 复制代码
#include <iostream>
using namespace std;

# define print(xx , a , b) cout << #xx << a##b << endl;

int main()
{
    print(连接:, 5 , 6);
}

编译输出:

cpp 复制代码
连接:56
  • \:具有续行的作用,下一行也是属于该宏定义;

  • 条件定义

cpp 复制代码
#ifndef RADIXUN_LOG_H__ //如果为定义
#define RADIXUN_LOG_H__
#endif
cpp 复制代码
#ifdef xx  //如果定义
#define xxxx
#else
#define xxxxx
#endif
  • 取消宏定义
cpp 复制代码
#undef xx
  • 可变参数宏...和__VA_ARGS__

...:为参数列表中最后一项

cpp 复制代码
# define print(xx , ... , xx) cout << #xx << __VA_ARGS__ << endl;//报错
cpp 复制代码
#include <iostream>
using namespace std;

# define print(xx , ...) cout << #xx << __VA_ARGS__ << endl;

int main()
{
    print(XXXX:, 555);
}

编译输出:

cpp 复制代码
XXXX:555

相关推荐
三玖诶2 分钟前
如何在 Qt 的 QListWidget 中为某一行添加点击事件
开发语言·qt
金博客6 分钟前
Qt 模型视图(二):模型类QAbstractItemModel
c++·qt6.7.2
InJre9 分钟前
QT widgets 窗口缩放,自适应窗口大小进行布局
开发语言·qt·ui
可愛小吉12 分钟前
Python 课程10-单元测试
开发语言·python·单元测试·tdd·unittest
student.J18 分钟前
傅里叶变换
python·算法·傅里叶
五味香24 分钟前
C++学习,动态内存
java·c语言·开发语言·jvm·c++·学习·算法
无名之逆25 分钟前
计算机专业的就业方向
java·开发语言·c++·人工智能·git·考研·面试
Beauty.56830 分钟前
P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布
数据结构·c++·算法
Aurora200531 分钟前
蓝桥杯2024省C
c语言·算法·蓝桥杯
爱棋笑谦31 分钟前
二叉树计算
java·开发语言·数据结构·算法·华为od·面试