C/C++语言宏定义##连接符和符#的使用
2023-09-11 14:17:47 时间
C/C++语言宏定义##连接符和符#的使用
(一)C/C++语言宏定义##连接符和符#的使用
(1) ## 连接符:在带参数的宏定义中,
用来将两个Token连接为一个Token
,从而形成一个新的子串。
注意这里连接的对象是Token就行,而不一定是宏的变量。
例子:
#define XNAME(n) x ## n
当出现int XNAME(1) = 14;时,会被替换为:
int x1=14;
(2)#符:是将其后面的宏参数进行字符串化操作(Stringfication),即把宏参数变为一个字符串,简单说就是在对它所引用的宏变量 通过替换后在其左右各加上一个双引号。#符,也就是把传递过来的参数当成字符串进行替代。
例子:
#define WARN_IF(EXP) do{ if (EXP) fprintf(stderr, "Warning: " #EXP "/n"); } while(0)
当出现WARN_IF (divider == 0);时,相当于如下替换:
do {
if (divider == 0)
fprintf(stderr, "Warning" "divider == 0" "/n");
} while(0);
可见#EXP将会被替换为【“divider == 0"】
相关文章
- 突发奇想-取缔宏定义,用另外一种语言来做C++的部分外层封装
- Open3D(C++) 计算点云表面曲率
- Open3D (C++) 计算每个点的协方差矩阵
- c语言和c++学习记录
- Algorithm:C++语言实现之队列相关算法(最短路径条数问题、拓扑排序)
- CV之OpenCV:HALCON机器视觉软件简介&OpenCV的基础概念、常用案例(打开图片/摄像头/视频)、常用函数解释大全(C++/python语言)之详细攻略
- DL之RNN:人工智能为你写代码——基于TF利用RNN算法实现生成编程语言代码(C++语言)、训练&测试过程全记录
- C++Qt开发——Linguist语言家
- 【 华为OD机试 2023】实力差距最小总和、最佳对手(C++ Java JavaScript Python)
- C++学习心得与c语言到c++衔接技巧
- C++语言本身没有输入输出语句
- CC++ vector 每个元素 加减
- c++ vector 初始化_C++--vector()的用法
- 【回答问题】ChatGPT上线了!请使用C++语言写一个谷歌 LaMDA模型?
- c++ vector C++ vector存放结构体 并且排序
- C++语言笔记系列之十六——赋值兼容规则&多继承的二义性
- 大约 C++ 几个方面分析--overload, override, overwrite, rewrite
- 【c++复习笔记】——智能指针详细解析(智能指针的使用,原理分析)
- PAT 1078 C++ 版
- C++语言中类与引用感悟之经典
- C/C++语言使用技巧(三十三):强大的数学计算库gsl与算法实现
- C/C++面试题分享「虚函数、多态、内存管理与软件调试篇」