gcc扩展中的宏定义中用 "#" 和 "##"
来源:互联网 发布:360度全景照片 知乎 编辑:程序博客网 时间:2024/04/28 20:06
今天测试了宏定义中的 "#" 和 "##" 的区别。
结果如下:
"#" 代表和一个字符串相连接
"##" 代表和一个符号连接,符号可以是变量,或另一个宏符号。
举例如下:
宏定义如下
(1)
如此调用:
用gcc -E展开后,如下
如果没有定义DEV_FILE_NAME ,就是
所以可以很清楚的看出#n 解析出来的是"n" , 用于连接一个已有的字符串。
(2) 再来看 ## 是什么意思, 宏定义如下:
调用方式相同。看宏展开:
现在看清楚了, ##n 的作用是把n直接连接在了一个符号的末尾. 好, 现在我们定义一个符号看看效果。
#define DEV_FILE_NAME1 "/dev/test_kft1"
再展开:
很显然第一个符号被替换了, 因为是符号是宏的缘故。 这样我们也能把这一扩展特性应用在变量上。
- gcc扩展中的宏定义中用 "#" 和 "##"
- 关于gcc扩展中的宏定义中用 "#" 和 "##"
- 关于gcc扩展中的宏定义中用 "#" 和 "##"
- 内核中的gcc扩展
- Makefile中用宏定义进行条件编译(gcc -D)/在Makefile中进行宏定义-D
- Makefile中用宏定义进行条件编译(gcc -D)/在Makefile中进行宏定义-D
- Makefile中用宏定义进行条件编译(gcc -D)/在Makefile中进行宏定义-D
- Makefile中用宏定义进行条件编译(gcc -D)/在Makefile中进行宏定义-D
- Makefile中用宏定义进行条件编译(gcc -D)/在Makefile中进行宏定义-D
- Makefile中用宏定义进行条件编译(gcc -D)/在Makefile中进行宏定义-D
- Makefile中用宏定义进行条件编译(gcc -D)/在Makefile中进行宏定义-D
- Makefile中用宏定义进行条件编译(gcc -D)/在Makefile中进行宏定义-D
- Makefile中用宏定义进行条件编译(gcc -D)/在Makefile中进行宏定义-D
- GCC定义和应用
- 宏定义中的## 和#
- 宏定义中的#和##
- 宏定义中的 #和##
- 宏定义中的#和##
- Exception:java.lang.NoSuchFieldError: TRACE
- 更改数据库对象所有者
- struts2中if标签
- 愁呀
- HTTP下载
- gcc扩展中的宏定义中用 "#" 和 "##"
- |自动化测试| QTP模拟鼠标和键盘事件整理
- 使用 IBM Rational Portfolio Manager 进行业务驱动开发入门简介
- ApplicationControlBar应用
- Direct3D学习笔记
- 篮球 nba词汇
- 过滤器(Filter)
- CGROUPS
- 已婚男人的十大理财绝招