预处理中的“#”运算符和“##”运算符
来源:互联网 发布:退出淘宝客 之前的链接 编辑:程序博客网 时间:2024/06/05 23:51
“#”和“##”这两个运算符都是预处理,在这里,对他的使用是一个关键,接下来我们通过一段程序来认识一下:
//#//###include<stdio.h>#include<stdlib.h>#define PRINT( n ) printf( "token" #n " = %d", game##n )int main(){ int game9 = 99; PRINT(9);//在这里的##的作用是连接的作用,最后导致输出的变量是game9,而#的作用是就是把参数当作字符串代替; system("pause"); return 0;}
程序运行结果:
在这里我们可以分析,在宏中的n字符最后被所给的参数代替,所以“#”运算符,它可以把语言符号转化为字符串。
对于“##”运算符呢,在程序中,它把game和n组合成了game9,game9为99,所以最后也就输出了game99。所以可以知道,“##“起的作用就是连接任意的字符。
特别注意:
在单一的宏定义中,最多只能出现一次”#“或”##“操作符。当然,由于这些限定,除非是在非常必须的情况下,否则应该尽量不使用”#“和”##“。
0 0
- 预处理中的“#”运算符和“##”运算符
- C语言预处理中的 # 和 ## 运算符
- 预处理命令“ # 运算符”和“ ## 运算符”
- 预处理命令“ # 运算符”和“ ## 运算符” "#@"运算符
- 预处理命令“ # 运算符”和“ ## 运算符” "#@"运算符
- 预处理运算符##和#在Linux内核中的用法
- ##预处理运算符
- C预处理运算符
- 预处理器运算符
- C语言预处理 # 和## 运算符
- #define 中的“ # 运算符”和“ ## 运算符”
- #define 中的“ # 运算符”和“ ## 运算符”
- C语言预处理运算符
- C/C++预处理运算符
- C语言预处理运算符
- C语言预处理运算符
- C/C++预处理运算符
- 运算和运算符
- 拓扑排序
- JMS createSession(false, Session.AUTO_ACKNOWLEDGE); 两个参数不同组合下的区别
- node.js入门小实例
- 单例模式(转载)
- install mysql for mac
- 预处理中的“#”运算符和“##”运算符
- android多线程学习---Loader分析
- python学习笔记--使用ctypes调用C函数
- AndroidManifest合并原理
- WORD Application.Documents.Open函数返回null的一种解决方法
- AC自动机——多模式串的匹配
- android中跳转相册,相机获取图片后截取图片并保存SDCARD
- (转)ARM协处理器CP15寄存器详解
- android studio中gradle版本问题的解决方案