预编译器:#运算符和##运算符
来源:互联网 发布:网络词汇2017 编辑:程序博客网 时间:2024/06/05 07:41
#运算符
当我们定义一个类函数宏的时候,位于引号字符串中的类函数宏参数将被看做普通文本,而不是被看作一个可被替换的参数。
#define PSQR(x) printf("The square of X is %d.\n", ((x)*(x)));当我们调用的时候
PSQR(8);The square of X is 64. //这一行为上面调用的输出,字符X被看成了普通字符如果想要把‘X'字符变成类函数宏的参数8时,我们可以用一个预处理运算符(#)来完成。例如,如果X是一个宏参数,那么#X可以把参数名转化为相应的字符串,这个过程称为字符串化(stringizing)
把上面的PSQR宏定义改为如下的定义
#define PSQR(x) printf("The square of " #X" is %d.\n", ((x)*(x)));
当我们再次调用的时候
PSQR(8);The square of 8 is 64. //这一行为上面调用的输出,现在就会用8来代替字符X
##运算符
和#运算符一样,##运算符可以用于类函数宏的替换部分,还可以用于类对象宏的替换部分。这个运算符把两个语言符号组合成单个语言符号。
例如:
#define XNAME(n) x##n当我们调用的时候
XNAME(4);x4 //这一行为上面调用的输出友情链接:C语言类函数宏和一般函数的区别
0 0
- 预编译器:#运算符和##运算符
- 运算和运算符
- 运算符和运算数
- <Js>运算和运算符
- 【C开发】预编译处理命令(#define、typedef、#include、#运算符)
- 位运算与预编译知识点总结
- 预处理命令“ # 运算符”和“ ## 运算符” "#@"运算符
- 预处理命令“ # 运算符”和“ ## 运算符” "#@"运算符
- 关系运算符和等于运算符
- #define 中的“ # 运算符”和“ ## 运算符”
- #define 中的“ # 运算符”和“ ## 运算符”
- 预处理命令“ # 运算符”和“ ## 运算符”
- 位运算符和位移运算符
- c++ “&”运算符和“+”运算符优先级
- 数据类型和运算符(运算符)
- 预处理中的“#”运算符和“##”运算符
- C# ?运算符和??运算符
- 比较运算符和三元运算符
- 校门外的树2
- 面向对象-接口
- UML- 统一建模语言(Unified Modeling Language)创建项目的序列图及类图
- 面向对象-抽象类
- SecureCRT连接Linux
- 预编译器:#运算符和##运算符
- cocos2d-Lua视频教程
- Afaria服务器配置APNS Push Certificate (for Mobile Device Management)失败
- Apache Pig学习笔记(二)
- 解决SecureCRT中文显示乱码
- 弱弱的战壕
- C语言hello world
- [LeetCode]Binary Tree Zigzag Level Order Traversal
- c++/c学习笔记--补遗