C/C++中单井号与双井号的使用 作者:delnabla 日期:2009-12-24 字体大小: 小 中 大 在宏定义中经常会用到#和## 单井号(#) 把传递过来的参数当成字符串进行替代 如下示例: 程序代码 #define display(name) printf(""#name"") int main() { display(name); } 输出: name 双井号(##) 称为连接符 在带参数的宏定义中将两个子串(token)联接起来,从而形成一个新的子串。但它不可以是第一个或者最后一个子串。所谓的子串(token)就是指编译器能够识别的最小语法单元。具体的定义在参考编译原理。 下面是MSDN上的一个例子。 假设程序中已经定义了这样一个带参数的宏: 程序代码 #define paster( n ) printf( "token" #n " = %d", token##n ) //同时又定义了一个整形变量: int token9 = 9; 现在在主程序中以下面的方式调用这个宏: paster( 9 ); 那么在编译时,上面的这句话被扩展为: printf( "token" "9" " = %d", token9 ); 注意到在这个例子中,paster(9);中的这个”9”被原封不动的当成了一个字符串,与”token”连接在了一起,从而成为了token9。而#n也被”9”所替代。 可想而知,上面程序运行的结果就是在屏幕上打印出token9=9

C/C++中单井号与双井号的使用相关推荐

  1. 单井号(#)和双井号(##)

    在宏定义中经常会用到#和## 单井号(#) 把传递过来的参数当成字符串进行替代 如下示例: 程序代码 #define display(name) printf(""#name&qu ...

  2. c语言井号字符什么意思,关于c语言宏定义中的单#(井号)和双#(井号)

    看了这篇文章后了解了,但是文章中的例子比较特别,我在这里加个注释好了. 单井号就是将后面的 宏参数 进行字符串操作,就是将后面的参数用双引号引起来 双井号就是用于连接. 比如文章中的例子: #defi ...

  3. C语言中 井号#、双井号##

    在 C 语言中,井号 "#" 是一个预处理器指令的符号,用于在编译之前处理代码.预处理器指令以 "#" 开始,以换行符结束. 常见的预处理器指令包括: #inc ...

  4. C语言宏与单井号(#)和双井号(##)

    C(和C++)中的宏(Macro)属于编译器预处理的范畴,属于编译器概念(而非运行期概念).下面对常遇到的宏的使用问题做了简单总结. 关于#和## 在C语言的宏中,#的功能是将其后面的宏参数进行字符串 ...

  5. 【原创】【C语言】‘#’(井号)和‘##’(双井号)用法

    一,这是个什么玩意 有时候在宏定义或打印语句中经常见到#井号或者##双井号,看着很牛逼的用法 二,有毛用啊 #:表示字符串化:##:表示concatenate(连接) 具体就是,#号的功能是将其后面的 ...

  6. ##(两个井号)和#(一个井号)都是什么意思C and C++ 2008-09-23 21:18:27 阅读1106 评论0 字号:大中小 订阅 .

    ##(两个井号)和#(一个井号)都是什么意思 C and C++ 2008-09-23 21:18:27 阅读1106 评论0   字号:大中小 订阅 连接符 ##(两个井号) 不知道什么符 #(一个 ...

  7. 井号#和2井号##和艾特井号@#的使用

    // vs2017使用 //井号#和2井号##和艾特井号@#的使用.cpp : Defines the entry point for the console application. //#incl ...

  8. C语言(C++语言)中##(两个井号)和#(一个井号)用法[转]

    C语言(C++语言)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念).下面对常遇到的宏的使用问题做了简单总结. 关 于#和## 在C语言的宏中,#的功能是将其后面的宏参数进 ...

  9. 在c语言中预处理命令行都以井号开头,以井号开头的行和gcc预处理器输出中的'#1“ac”'之类的数字是什么意思?...

    以井号开头的行和gcc预处理器输出中的'#1"ac"'之类的数字是什么意思? 我使用打印出C预处理器的输出 gcc -E a.c 输出包含许多行 # 1 "a.c&quo ...

最新文章

  1. python 每分钟运行一次_调度Python脚本以准确地每小时运行一次
  2. R语言ggplot2进行特定国家或者地区的地图可视化、在地图上标出所有首府城市所在地(plot the locations of the capital cities)
  3. NOIP练习赛题目5
  4. linux里没有grub文件,linux – 安装Ubuntu后没有grub菜单,直接启动...
  5. confluent connect写出到ES及ClickHouse
  6. redis-哈希数据类型
  7. 使用RQShineLabel
  8. 称新手机是“二手货” 消费者起诉要求三倍赔偿
  9. python列表的小东西_小谈python里 列表 的几种常用用法
  10. Spring-ConfigurationClassPostProcessor类
  11. 从入门到入土:[SEED-Lab]MD5碰撞试验|MD5collgen实验|linux|Ubuntu|MD5 Collision Attack Lab|详细讲解
  12. PHP 根据年月返回这个月的第一天时间戳和这个月的最后一天时间戳
  13. CPU检测软件CPU-Z的下载使用
  14. 中国互联网的5大生死逻辑
  15. 软硬件交互 - 扫码枪
  16. 2022年中式面点师(中级)复训题库及模拟考试
  17. JAVA数组元素比较
  18. python 输出纯音频_提取视频中的音频python三行程序搞定
  19. i2c-tool调试工具使用方法介绍
  20. Mifare 1k卡技术细节以及工作原理

热门文章

  1. 虚拟主机时代:美国主机如何在国内显神通
  2. N900超频和刷9G-home一气呵成
  3. hadoopHA自动切换不成功的坑
  4. JSP简单练习-javaBean的简单应用
  5. JAVA中通过Hibernate-Validation进行参数验证
  6. 剑指offer-栈的压入、弹出序列
  7. ALGO-117_蓝桥杯_算法训练_友好数
  8. MongoDB学习笔记——数据库安装及配置
  9. CoreData / MagicalRecord
  10. 百度2011招聘笔试题+答案解析