【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 天前
c语言指的是什么意思
c语言·编译器·编程开发·集成开发环境·程序实例
倒头就睡的小比特2 天前
算法竞赛C++常用的STL
c++·算法
weilx12342 天前
C++笔记-文件IO-<fcntl.h>
c++
小羊没烦恼!2 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
傲世仙尊2 天前
目录即文件-Ext文件系统收尾篇
linux·c语言
牵猫散步的鱼儿2 天前
重载、重写(覆盖)、重定义区别
c语言
伞伞悦读2 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
猎头南楼2 天前
知识社区推荐系统实践:新用户冷启动与长短期兴趣建模的挑战 资深推荐算法工程师
人工智能·深度学习·算法·机器学习
phltxy2 天前
C 语言指针:从内存地址到灵活的数据访问
c语言
Smileyqp沛沛2 天前
前端?C++ ?较大差异基础罗列
c++·基础·前端转c++