摘要: #define CHECK(condition) cout<<check failed:<<#condition<<endl;上面这句宏,当你 CHECK(myfunc()); 时,假设myfunc返回false,会输出:check failed:myfunc()在宏中,#condition 是把参数转换为字符串,这在打印log时,可以很方便的打印出函数名称等等这个大家可能都知道了,太小儿科了,但是,当你在unicode下用的时候,很可能会出现乱码解决的办法是 #condition 替换为 L## #conditon#define CHECK(conditi 阅读全文
posted @ 2013-07-16 16:11 天堂大鸟 阅读(602) 评论(2) 推荐(0) 编辑
摘要: 写给日志帮助宏,打日志经常需要格式化字符串,类似:DEBUG_STR(L"value = %d, error = %d.", val, error);so,定义方法如下:来自:http://docs.oracle.com/cd/E19205-01/821-0389/bkacd/index.htmlC++ 编译器接受以下形式的#define预处理程序指令。#define identifier (...) replacement_list#define identifier (identifier_list, ...) replacement_list如果列出的宏参数以省略号结 阅读全文
posted @ 2013-07-16 15:42 天堂大鸟 阅读(758) 评论(0) 推荐(0) 编辑