C/C++中单井号与双井号的使用
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++中单井号与双井号的使用相关推荐
- 单井号(#)和双井号(##)
在宏定义中经常会用到#和## 单井号(#) 把传递过来的参数当成字符串进行替代 如下示例: 程序代码 #define display(name) printf(""#name&qu ...
- c语言井号字符什么意思,关于c语言宏定义中的单#(井号)和双#(井号)
看了这篇文章后了解了,但是文章中的例子比较特别,我在这里加个注释好了. 单井号就是将后面的 宏参数 进行字符串操作,就是将后面的参数用双引号引起来 双井号就是用于连接. 比如文章中的例子: #defi ...
- C语言中 井号#、双井号##
在 C 语言中,井号 "#" 是一个预处理器指令的符号,用于在编译之前处理代码.预处理器指令以 "#" 开始,以换行符结束. 常见的预处理器指令包括: #inc ...
- C语言宏与单井号(#)和双井号(##)
C(和C++)中的宏(Macro)属于编译器预处理的范畴,属于编译器概念(而非运行期概念).下面对常遇到的宏的使用问题做了简单总结. 关于#和## 在C语言的宏中,#的功能是将其后面的宏参数进行字符串 ...
- 【原创】【C语言】‘#’(井号)和‘##’(双井号)用法
一,这是个什么玩意 有时候在宏定义或打印语句中经常见到#井号或者##双井号,看着很牛逼的用法 二,有毛用啊 #:表示字符串化:##:表示concatenate(连接) 具体就是,#号的功能是将其后面的 ...
- ##(两个井号)和#(一个井号)都是什么意思C and C++ 2008-09-23 21:18:27 阅读1106 评论0 字号:大中小 订阅 .
##(两个井号)和#(一个井号)都是什么意思 C and C++ 2008-09-23 21:18:27 阅读1106 评论0 字号:大中小 订阅 连接符 ##(两个井号) 不知道什么符 #(一个 ...
- 井号#和2井号##和艾特井号@#的使用
// vs2017使用 //井号#和2井号##和艾特井号@#的使用.cpp : Defines the entry point for the console application. //#incl ...
- C语言(C++语言)中##(两个井号)和#(一个井号)用法[转]
C语言(C++语言)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念).下面对常遇到的宏的使用问题做了简单总结. 关 于#和## 在C语言的宏中,#的功能是将其后面的宏参数进 ...
- 在c语言中预处理命令行都以井号开头,以井号开头的行和gcc预处理器输出中的'#1“ac”'之类的数字是什么意思?...
以井号开头的行和gcc预处理器输出中的'#1"ac"'之类的数字是什么意思? 我使用打印出C预处理器的输出 gcc -E a.c 输出包含许多行 # 1 "a.c&quo ...
最新文章
- python 每分钟运行一次_调度Python脚本以准确地每小时运行一次
- R语言ggplot2进行特定国家或者地区的地图可视化、在地图上标出所有首府城市所在地(plot the locations of the capital cities)
- NOIP练习赛题目5
- linux里没有grub文件,linux – 安装Ubuntu后没有grub菜单,直接启动...
- confluent connect写出到ES及ClickHouse
- redis-哈希数据类型
- 使用RQShineLabel
- 称新手机是“二手货” 消费者起诉要求三倍赔偿
- python列表的小东西_小谈python里 列表 的几种常用用法
- Spring-ConfigurationClassPostProcessor类
- 从入门到入土:[SEED-Lab]MD5碰撞试验|MD5collgen实验|linux|Ubuntu|MD5 Collision Attack Lab|详细讲解
- PHP 根据年月返回这个月的第一天时间戳和这个月的最后一天时间戳
- CPU检测软件CPU-Z的下载使用
- 中国互联网的5大生死逻辑
- 软硬件交互 - 扫码枪
- 2022年中式面点师(中级)复训题库及模拟考试
- JAVA数组元素比较
- python 输出纯音频_提取视频中的音频python三行程序搞定
- i2c-tool调试工具使用方法介绍
- Mifare 1k卡技术细节以及工作原理