C++宏定义中的特殊符号
1. #:在宏展开的时候会将#后面的参数替换成字符串,如:
#define ToString(x) #x
那么 char *str = ToString(123); 结果str="123";
'#'是`stringize'的意思。其后的变量将被用双引号包括的字符串替代。例:
#define display(x) show((long)(x), #x)
则display(abs(-5)); 将被替换为:show((long)(abs(-5)), "abs(-5)"); 注意有引号。
2. ##:将前后两个的单词拼接在一起,如:
#define cat(x,y) x##y
那么 int n = cat(52, 123); 结果 n =52123;
'##'是'token-paste'操作符。其后的变量将被与之前的字符串合并在一起形成一个新的token.例:
#define printvar(x) printf("%d\n", variable##x)
则printvar(3);将被替换为printf("%d\n", variable3);
##仅仅合并字符串,而形成一个token,没有引号.
3. #@:将值序列变为一个字符
#define ToChars(c) #@c
调用ch(a)展开后成为'a'.
C++宏定义中的特殊符号相关推荐
- c程序语言符号的作用,c语言宏定义中的#,##,#@及\符号的作用
1.#(stringizing)字符串化操作符 作用:将宏定义中的传入参数名转换成用一对双引号括起来参数名字符串.其只能用于有传入参数的宏定 义中,且必须置于宏定义体中的参数名前. 如: #def ...
- define宏定义中的#,##,@#及\符号
define宏定义中的#,##,@#及\符号 在#define中,标准只定义了#和##两种操作.#用来把参数转换成字符串,##则用来连接两个前后两个参数,把它们变成一个字符串. 1.# (string ...
- #define宏定义中的#,##,@#,\ 这些符号的神奇用法
C/C++ 宏命令的神奇用法. 先看下面三条语句: #define Conn(x,y) x##y #define ToChar(x) #@x #define ToString(x) #x 1 2 3 ...
- abs int 宏定义_在标准C中,预处理语句,特别是宏定义中,常常出现'#'和'##'符号,#字符串创建运算符#...
我看<U N I X环境高级编程>第七章时看到这么条宏定义: #define doit(name) pr_limits(#name, name) 这里第二个#号是什 ...
- #与##在宏定义中的--宏展开
#与##在宏定义中的--宏展开 #include <stdio.h> #define f(a,b) a##b #define g(a) #a #define h(a) g(a) int m ...
- C宏定义中的##,#,#@用法介绍
关于字符串化和符号粘贴 2011-08-02 16:52:46.0 来源:博客园 作者:佚名 关键词: 字符串 C++ 在C语言开发中,宏定义是一个非常有用的工 ...
- ANSI C and Microsoft C++中常用的预定义宏以及 宏定义中 # 和 ## 的区别
ANSI C and Microsoft C++中常用的预定义宏以及 宏定义中 # 和 ## 的区别 第一部分,常见的预定义宏 第二部分,# 和 ## 再宏定义中的使用说明 第三部分,类似 #prag ...
- 宏定义中的 ## ... __VA_ARGS__
宏定义中的##操作符和... and _ _VA_ARGS_ _ 1.Preprocessor Glue: The ## Operator 预处理连接符:##操作符 Like the # operat ...
- 宏定义中#号和##号的使用
在技术群中有人提了一个问题:如何定义一个宏,打印传递过来的参数的地址.这很简单,像下面这样 [objc] view plaincopy #define pl(param) NSLog(@" ...
最新文章
- C++11新特性之defaulted函数
- 人类认知对设计规律有这些影响
- 【今日CV 计算机视觉论文速览 第127期】Fri, 7 Jun 2019
- Unable to load configuration的解决方法
- deepin20安装mysql-workbench
- python字符串转换元组_python 字符串,列表,元组,字典相互转换
- paip.wmv的无损分割与截取
- 不容错过的30页超赞项目管理PPT
- php网站挂马,转 :php 网站挂马检查
- 如何手动启动消防广播_消防广播使用操作流程
- [导入]关于Gmail无法链接的解决方法。
- provision文件路径
- halcon中如何生成椭圆_Halcon中关于角度计算和测量拟合的算子详解
- AAAI 2023 | 腾讯优图实验室16篇论文入选,含多标签分类、姿态估计、目标检测、HOI、小样本学习等研究方向...
- 吐槽微软,远离微软!
- 三十四、进阶之获取详情页面信息并显示
- 更新和卸载 oh-my-zsh
- 一键U盘装系统-【万能U盘启动盘制作工具】
- Rdlc报表纵向与横向打印问题
- linux下使用AppImage打包qt程序