博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
那些C/C++宏定义中你可能忽视的符号意思
阅读量:4096 次
发布时间:2019-05-25

本文共 993 字,大约阅读时间需要 3 分钟。

\  行继续操作符

这是我们宏定义的时候经常会使用的符号,有些时候我们定义的宏可能比较复杂,定义的宏不能用一行表达完整时,需要用"\"表示换行继续宏的定义,不使用"\"不能编译通过,而且这样能够使宏的定义美观易读。

 

#  字符串化操作符

将宏定义中的传入参数名转换成用一对双引号括起来的参数名字符串。通俗的讲就是不管传入的是什么参数,都将是一个字符串。只能用于有传入参数的宏定义中,必须置于宏定义体中的参数名前。当传入参数名前面和后面有空格时将被忽略;当传入参数名间存在空格时,编译器会自动连接各个子字符串,每个子字符串中只保留一个空格。

比如定义了以下宏:

#define test(str) #str

使用宏定义:

std::string str = test(zhai   nan) 其实等价于 std::string str = “zhai nan”

 

## 符号连接操作符

把宏参数名与宏定义代码序列中的标识符连接在一起,形成一个新的标识符。当用##连接形参时,##前后的空格可有可无;连接后的实际参数名,必须为实际存在的参数名或是编译器已知的宏定义。

 

#@ 字符化操作符。

将传入的单字符参数名转换成字符,用单引用括起来。只能用于有传入参数的宏定义中,且必须置于宏定义体中的参数名前,这个操作符其实并不常用。

比如定义了以下宏:

#define tochar(x)  #@x

a = tochar(b) 其实等价于    a = 'b';

 

代码实例:

#include 
#define sum(a , b) #define test1(num) \    std::cout << #num " = " << num << std::endl;#define test2(num) \    test1(a##num);#define tochar(x)  #@xint main(int argc, char* argv[]){ int a = 10;  int a1 = 1, a2 = 2, a3 = 3;   test1(a); test2(1); test2(2);  test2(3); system("pause");}

执行结果:

 

--END--

 

个人微信公众号“IT集装箱”目前正在吸粉阶段,欢迎搜索加关注,获取更多精彩IT技术知识内容分享!

 

转载地址:http://beiii.baihongyu.com/

你可能感兴趣的文章
java10支持mybatis_10_springboot mybatis支持
查看>>
java ssl protocol_https Java SSLException protocol_version的问题解决方法
查看>>
java文件流classload_深入理解JVM之ClassLoader
查看>>
java2.0qq同步_QQ同步助手Java版发布
查看>>
java 泛型 c_Java泛型方法
查看>>
book类 借书 java_模拟借书系统(Java入门第三季第一章练习)
查看>>
js 实现 php urlencode_javascript对php urlencode()函数生成的编码进行解码的办法
查看>>
php 二进制字符串转图片,php如何把图片转换成二进制字符串
查看>>
php网页对应的前端在哪,thinkphp的css放在哪?
查看>>
php一个连接战多少内存不足,php项目运行出现内存不足提示如何解决
查看>>
php在数组指定位置,php怎么在数组指定位置插入元素?
查看>>
php cgi.sock 502,nginx中unix:/tmp/php-cgi.sock错误解决解决
查看>>
java 拼音工具栏,Java工具集-拼音工具类
查看>>
websocket账号密码登录php,PHP实现微信扫码登陆(四)--使用workerman搭建websocket服务器...
查看>>
java使用intent例子,Intent使用案例 - 1071954237的个人空间 - OSCHINA - 中文开源技术交流社区...
查看>>
matlab如何删掉行,添加和删除表行- MATLAB & Simulink- MathWorks 中国
查看>>
mysql的db.properties,经过properties配置文件连接数据库
查看>>
matlab角随动系统,基于Matlab的随动系统半实物仿真平台设计
查看>>
php架构l,OneBase
查看>>
php三种排序,浅析三种排序和我写的一种排序-PHP
查看>>