宏定义中的#和##
来源:互联网 发布:骂淘宝客服歹毒的话 编辑:程序博客网 时间:2024/04/25 21:50
调试环境:win10+vs2015
在C和C++中#define是经常使用的,这里就介绍一下“#”和“##”
“#”:表示在宏定义中使用原字符串
“##”:表示连接前后两个字符串
这两个都只能用在#define中使用
举例:
#define TEST(a,b) cout<<a<<" "<<#a<<" "<<b<<" "<<#b<<endlint main(){ TEST('c','d'); return 0;}
解析:将宏定义替换入主函数中,编译器将a看成一个c字符,而将#a看成‘c’字符串。
运行结果:c ‘c’ d ‘d’
#define SetGetPrama(type,value)\void Set##value(const type value){\ _##value=value;\}\type Get##value() {\ return _##value;\}class Test{public: SetGetPrama(int,value);private: int _value;};int main(){ Test t; t.Setvalue(5); int a=t.GetValue(); return 0;}
解析:该段代码的功能是生成类中私有变量对外部的接口,即生成set-get函数。
运行结果:可以在函数中创建该类的对象,可以直接调用set-get函数。
总结:宏定义代表着替换,有些时候我们可能需要只进行部分的替换。所以,可以使用“#”来改变其意义,不替换;有些时候我们需要在宏定义里面连接两个字符串,这个时候“##”就可可以派上用场了。
0 0
- 宏定义中的## 和#
- 宏定义中的#和##
- 宏定义中的 #和##
- 宏定义中的#和##
- 宏定义中的#和##
- 宏定义中的 ##和#
- 宏定义中的#和##
- C++宏定义中的## 和#
- 宏定义中的#、##和#@符号
- 宏定义中的#、##和__VA_ARGS_
- C宏定义中的 # 和 ##
- 宏定义中的"#"和"##"符号
- C++宏定义中的## 和#的区别
- gcc扩展中的宏定义中用 "#" 和 "##"
- 宏定义中的 "#" 和 "##" 的区别
- 宏定义中的 "#" 和 "##" 的区别
- 宏定义中的运算符:#和##
- 宏定义中的 "#" 和 "##" 的区别
- 架构师应该知道的97件事读书笔记之客户需求重于个人简历
- Floyd-Warshall
- 注意力机制(Attention Mechanism)在自然语言处理中的应用
- 自编码算法
- MyEclipse Access restriction
- 宏定义中的#和##
- String 类型转化为 int 类型
- COGS 499. 牛宫
- thinkphp 整合微信支付
- Spring保错:Cannot subclass final class class java.lang.String
- SQLServer CTE, Merge
- 用Python的Lxml库抓取网页内容
- DriodDeveloper 技术干货大汇总
- Jemter性能测试工具安装