宏定义中的#、##含义
2012-08-16 14:38
302 查看
今天被一个朋友问到"#define DEVICESTATE_MUX_NAME(devId) &_MuxTbl_##devId"这么一句宏定义是什么意思?
一时间我也忘记了,但是映像中曾今见过类似的代码。于是google一下找到了答案。
#:它是一个指示符,指示其及后面的变量名替代一个字符串;
##:它是一个连接符,表示它和他后面的变量名合并在一起。
如:#define DEVICESTATE_MUX_NAME(devId) &_MuxTbl_##devId 的意思就是
如果程序中,DEVICESTATE_MUX_NAME(1)-------> &_MuxTbl_1
DEVICESTATE_MUX_NAME(2)-------> &_MuxTbl_2
#define HELP(p) #p
程序中调用,HELP(LILEI) -----------> LILEI
HELP(WANGMEIMEI)----------------> WANGMEIMEI
一时间我也忘记了,但是映像中曾今见过类似的代码。于是google一下找到了答案。
#:它是一个指示符,指示其及后面的变量名替代一个字符串;
##:它是一个连接符,表示它和他后面的变量名合并在一起。
如:#define DEVICESTATE_MUX_NAME(devId) &_MuxTbl_##devId 的意思就是
如果程序中,DEVICESTATE_MUX_NAME(1)-------> &_MuxTbl_1
DEVICESTATE_MUX_NAME(2)-------> &_MuxTbl_2
#define HELP(p) #p
程序中调用,HELP(LILEI) -----------> LILEI
HELP(WANGMEIMEI)----------------> WANGMEIMEI
相关文章推荐
- ##在宏定义中的含义
- C++/C宏定义中##与#的含义
- C++/C 宏定义(define)中#和## 的含义
- #和##在宏定义中使用问题
- 宏定义中的##操作符和... and _ _VA_ARGS_ _ .
- C/C++常用宏定义,注意事项,宏中#和##的用法 .
- C/C++宏定义中井号(#)的含义
- 宏定义中#与##
- 使用宏定义让参数含义更清晰
- 宏定义的字符串连接##和字符串化#
- C++/C 宏定义(define)中# ## 的含义
- C++/C宏定义中## 连接符与# 符的含义
- 一.宏定义(2) --# 、#@ 和## 操作等
- C++ #、##含义
- C++/C宏定义中## 连接符与# 符的含义
- 宏定义中的##操作符和... and _ _VA_ARGS_ _
- 宏定义中的#,##
- C++/C宏定义中## 连接符与# 符的含义
- C99标准之宏定义_可变参数宏_#_##
- 宏定义中的#,##