宏定义中的 "#" 和 "##" 的区别
来源:互联网 发布:阿里云激活邀请码 编辑:程序博客网 时间:2024/04/29 21:16
以下转载自:
http://blog.chinaunix.net/u/21790/showart.php?id=402285
刚才测试了宏定义中的 "#" 和 "##" 的区别,希望能对大家有点帮助。
结果如下:
"#" 代表和一个字符串相连接
"##" 代表和一个符号连接,符号可以是变量,或另一个宏符号。
举例如下:
宏定义如下
(1)
结果如下:
"#" 代表和一个字符串相连接
"##" 代表和一个符号连接,符号可以是变量,或另一个宏符号。
举例如下:
宏定义如下
(1)
如此调用:
用gcc -E展开后,如下
如果没有定义DEV_FILE_NAME ,就是
所以可以很清楚的看出#n 解析出来的是"n" , 用于连接一个已有的字符串。
(2) 再来看 ## 是什么意思, 宏定义如下:
调用方式相同。
看宏展开:
现在看清楚了, ##n 的作用是把n直接连接在了一个符号的末尾. 好, 现在我们定义一个符号看看效果。
再展开:
很显然第一个符号被替换了, 因为是符号是宏的缘故。 这样我们也能把这一扩展特性应用在变量上。
再展开:
很显然第一个符号被替换了, 因为是符号是宏的缘故。 这样我们也能把这一扩展特性应用在变量上。
- C++宏定义中的## 和#的区别
- 宏定义中的 "#" 和 "##" 的区别
- 宏定义中的 "#" 和 "##" 的区别
- 宏定义中的 "#" 和 "##" 的区别
- 聚沙成塔 - 宏定义中的 "#" 和 "##" 的区别
- 宏定义中的 "#" 和 "##" 的区别
- 宏定义中的 "#" 和 "##" 的区别
- C++中的声明和定义的区别
- 宏定义和常量定义的区别
- C++中的声明和定义的区别1
- JavaScript中的属性:定义和赋值的区别
- [译]JavaScript中的属性:定义和赋值的区别
- C语言中的定义和声明的区别
- java中的string定义的两种方法和区别
- define宏定义和const常量定义之间的区别
- define宏定义和const常量定义之间的区别
- define宏定义和const常量定义之间的区别
- define宏定义和const常量定义之间的区别
- 手机开发
- 发布Activex
- 解决安装SQL2005无Management Studio
- 我们应该学习什么 java、C#还是C++(VC)
- css 设置网页边框滚动条样式
- 宏定义中的 "#" 和 "##" 的区别
- Eclipse插件开发之org.eclipse.ui.editorActions使用
- oracle数据类型之char&varchar
- response.redirect,server.transfer和server.execute总结
- 冷笑话
- 实现在线人数统计
- mysql 解决中文乱码问题
- 讲解一个标准规则的集合:DB2优化器
- try