您的位置:首页 > 编程语言 > C语言/C++

浅析c++ 宏 #val 在unicode下的使用

2013-07-18 11:35 567 查看

#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;

您可能感兴趣的文章:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ unicode