宏定义中#与##的用法
来源:互联网 发布:mac电脑中病毒怎么杀毒 编辑:程序博客网 时间:2024/04/30 05:03
宏定义中#的功能是将其后面的宏参数进行字符串化操作(Stringfication),举个例子就明白了:
#define WARN_IF(EXP) /
do{ if (EXP) /
fprintf(stderr, "Warning: " #EXP "/n"); } /
while(0)
使用WARN_IF (divider == 0);
被替换为
do {
if (divider == 0)
fprintf(stderr, "Warning" "divider == 0" "/n");
} while(0);
ok,讲##了,连接符(concatenator),用来将两个Token连接为一个Token,例子出发:
#define LINK_MULTIPLE(a,b,c,d) a##_##b##_##c##_##d
使用typedef struct _record_type LINK_MULTIPLE(name,company,position,salary);
这里这个语句将展开为:
typedef struct _record_type name_company_position_salary;
...在C宏中称为Variadic Macro,也就是变参宏。
具体方法以后再学习。因为今天没有时间,哈哈。
- 宏定义中#与##的用法
- 关于宏定义中#与##的用法
- 宏定义(define)中'#'与'##'的用法
- 宏定义 # 与 ## 的用法
- 宏定义中"#"的用法
- 宏定义中"#"的用法
- 宏定义中 “#”的用法
- c++中宏定义## 的用法
- c++宏定义中 #,#@,##的用法
- c语言中宏定义的用法
- 宏定义中if语句的用法
- 0047 python中类的定义与用法
- 关于C/C++中typedef的定义与用法总结
- 指针的定义与用法
- JS中NaN定义与用法
- VC的版本宏 的定义与用法
- 宏定义中#与##
- C语言中宏定义的一个变态用法
- iText生成PDF
- eDonkey (eD2k) vs. BitTorrent (BT)
- 论项目管控浅见(一):单打独斗篇
- vc防止运行多个程序,重复运行,同一个程序
- Google map api key
- 宏定义中#与##的用法
- SVN在linux下的使用笔记
- add r0, pc, #OEMAddressTable-(.+8)指令引起的论坛讨论
- wc命令
- SVN服务器搭建
- richfaces modalPanel例子
- 低成本 高安全 某集团VPN组网案例
- 读写xml所有节点个人小结 和 读取xml节点的数据总结
- DB2字符处理函数