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++宏定义中的特殊符号相关推荐

  1. c程序语言符号的作用,c语言宏定义中的#,##,#@及\符号的作用

    1.#(stringizing)字符串化操作符 作用:将宏定义中的传入参数名转换成用一对双引号括起来参数名字符串.其只能用于有传入参数的宏定   义中,且必须置于宏定义体中的参数名前. 如: #def ...

  2. define宏定义中的#,##,@#及\符号

    define宏定义中的#,##,@#及\符号 在#define中,标准只定义了#和##两种操作.#用来把参数转换成字符串,##则用来连接两个前后两个参数,把它们变成一个字符串. 1.# (string ...

  3. #define宏定义中的#,##,@#,\ 这些符号的神奇用法

    C/C++ 宏命令的神奇用法. 先看下面三条语句: #define Conn(x,y) x##y #define ToChar(x) #@x #define ToString(x) #x 1 2 3 ...

  4. abs int 宏定义_在标准C中,预处理语句,特别是宏定义中,常常出现'#'和'##'符号,#字符串创建运算符#...

    我看<U   N   I   X环境高级编程>第七章时看到这么条宏定义: #define   doit(name)   pr_limits(#name,   name) 这里第二个#号是什 ...

  5. #与##在宏定义中的--宏展开

    #与##在宏定义中的--宏展开 #include <stdio.h> #define f(a,b) a##b #define g(a) #a #define h(a) g(a) int m ...

  6. C宏定义中的##,#,#@用法介绍

    关于字符串化和符号粘贴 2011-08-02 16:52:46.0      来源:博客园         作者:佚名 关键词:  字符串     C++   在C语言开发中,宏定义是一个非常有用的工 ...

  7. ANSI C and Microsoft C++中常用的预定义宏以及 宏定义中 # 和 ## 的区别

    ANSI C and Microsoft C++中常用的预定义宏以及 宏定义中 # 和 ## 的区别 第一部分,常见的预定义宏 第二部分,# 和 ## 再宏定义中的使用说明 第三部分,类似 #prag ...

  8. 宏定义中的 ## ... __VA_ARGS__

    宏定义中的##操作符和... and _ _VA_ARGS_ _ 1.Preprocessor Glue: The ## Operator 预处理连接符:##操作符 Like the # operat ...

  9. 宏定义中#号和##号的使用

    在技术群中有人提了一个问题:如何定义一个宏,打印传递过来的参数的地址.这很简单,像下面这样 [objc] view plaincopy #define pl(param)  NSLog(@" ...

最新文章

  1. C++11新特性之defaulted函数
  2. 人类认知对设计规律有这些影响
  3. 【今日CV 计算机视觉论文速览 第127期】Fri, 7 Jun 2019
  4. Unable to load configuration的解决方法
  5. deepin20安装mysql-workbench
  6. python字符串转换元组_python 字符串,列表,元组,字典相互转换
  7. paip.wmv的无损分割与截取
  8. 不容错过的30页超赞项目管理PPT
  9. php网站挂马,转 :php 网站挂马检查
  10. 如何手动启动消防广播_消防广播使用操作流程
  11. [导入]关于Gmail无法链接的解决方法。
  12. provision文件路径
  13. halcon中如何生成椭圆_Halcon中关于角度计算和测量拟合的算子详解
  14. AAAI 2023 | 腾讯优图实验室16篇论文入选,含多标签分类、姿态估计、目标检测、HOI、小样本学习等研究方向...
  15. 吐槽微软,远离微软!
  16. 三十四、进阶之获取详情页面信息并显示
  17. 更新和卸载 oh-my-zsh
  18. 一键U盘装系统-【万能U盘启动盘制作工具】
  19. Rdlc报表纵向与横向打印问题
  20. linux下使用AppImage打包qt程序

热门文章

  1. 【美食记】传统非遗美食——鬼包子
  2. 2022年华为云存储618最新活动攻略
  3. 工程项目提成标准方案_工程项目提成实施分配方案
  4. 园区网运维经验之ARP协议
  5. 让电脑死机c语言,秘技:如何悄无声息的让一台电脑死机
  6. 【可达编程】P0815. 歌手大赛
  7. 如果真的存在外星人,AI终将找到它
  8. 【R-CNN目标检测系列】三、IoU与非极大抑制
  9. 【JS基础】JavaScript中的void 0
  10. python第一章(下)