时间:2021-05-19
#define CHECK(condition) cout<<check failed:<<#condition<<endl;
上面这句宏,当你 CHECK(myfunc()); 时,假设myfunc返回false,会输出:check failed:myfunc()
在宏中,#condition 是把参数转换为字符串,这在打印log时,可以很方便的打印出函数名称等等
这个大家可能都知道了,太小儿科了,但是,当你在unicode下用的时候,很可能会出现乱码
解决的办法是 #condition 替换为 L## #conditon
复制代码 代码如下:
#define CHECK(condition) cout<<check failed:<<L## #condition<<endl;
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
宏函数对于每个C++程序员都决不陌生,就算是初出茅庐的C++程序员也知道如何定义、使用宏函数。但是当初学者看到类似于以下这种宏函数嵌套的时候,可能还是会比较嘀咕
1、导出C函数以用于C或C++的项目如果使用C语言编写的DLL,希望从中导出函数给C或C++的模块访问,则应使用__cplusplus预处理器宏确定正在编译的语
在C++中,名称(name)可以是符号常量、变量、宏、函数、结构、枚举、类和对象等等。为了避免在大规模程序的设计中,以及在程序员使用各种各样的C++库时,这些标
在之前我们详细介绍了C语言中如何使用宏定义(#ifndef/#define/#endif)来有效避免头文件被重复#include,此方式在C++多文件编程中也很
NULL对于学习过C/C++语言的朋友,对NULL一定很熟悉吧?这就是在C/C++中的空指针。在C语言中,NULL是无类型的,只是一个宏,它代表空。我们不研究C