"#"和"##"操作符
2009-11-11 16:47
232 查看
预处理操作符"#"和"##"在ANSI C中可用,但在传统C中不可用。
单目操作符"#"使宏定义中的一个形式参数“字符串化”。下面是它用法的一例:
#define message_for(a, b) printf(#a "and" #b ": We love you!/n")
int main(void)
{
message_for(Carole,Debra);
return 0;
}
当这个宏被调用时,宏定义中的每个参数被它对应的实参所代替,得到结果为Carole and Debra: We love you!。
双目操作符"##"用于合并标记。如下例:
#define X(i) x##i
X(1)=X(2)=X(3);
经过预处理器处理之后,变为
x1=x2=x3;
单目操作符"#"使宏定义中的一个形式参数“字符串化”。下面是它用法的一例:
#define message_for(a, b) printf(#a "and" #b ": We love you!/n")
int main(void)
{
message_for(Carole,Debra);
return 0;
}
当这个宏被调用时,宏定义中的每个参数被它对应的实参所代替,得到结果为Carole and Debra: We love you!。
双目操作符"##"用于合并标记。如下例:
#define X(i) x##i
X(1)=X(2)=X(3);
经过预处理器处理之后,变为
x1=x2=x3;
相关文章推荐
- CLR via C# 读书笔记(三)关于"is" 和"as"操作符
- "%"操作符始末---更新一
- "cin>>" "get()" "getline()"比较
- "File size limit exceeded" 问题
- <c:if test="${fn:contains(name, searchString)}">
- 中国最早的"云平台"---刘邦手下的"谋臣武将"
- 关于Adobe CS3套装的"此产品的许可已停止" 的解决方案
- "人才" 及 "团队管理" 感言
- " & < > 等html字符转义
- C#中的"装箱"(boxing)与"拆箱"(unboxing)
- "Balancing Agility and Discipline" 中文版——《平衡敏捷与规范》终于要出版了
- <input type="file" />浏览时只显示指定文件类型
- C++中头文件使用""与<>的区别
- 'unable to run mksdcard sdk tool" when instll android studio on ubuntu14.10
- Scala 点滴:操作符"_"
- 转自一朋友的"人生杂谈"
- "Pure Virtual Function Called" 纯虚函数调用错误分析(翻译)
- <meta name="format-detection"/> 的用处
- JAVA基础:完全掌握java中的"包"机制
- [9] CMake - 如何高效使用"cmake --help" ?