使用Unicode版的预定义宏__FUNCTION__
来源:互联网 发布:淘宝宝贝改销量 编辑:程序博客网 时间:2024/06/05 20:40
在C++中支持一种预定义宏。比如:
__FILE__: 就是当前源代码文件名
__LINE__: 就是当前源代码的行号
这些宏可以在printf等语句中直接作为字符串使用,调试的时候很方便。
如下代码所示:
int _tmain(int argc, _TCHAR* argv[]){ printf("Line:%d", __LINE__); return 0;}
执行后如图:
Line:12
为了方便使用,微软在VC中还定义了一些它特有的宏,如:
__FUNCTION__:返回当前代码所在函数的名字
示例:
int _tmain(int argc, _TCHAR* argv[]){ printf("Function Name:%s", __FUNCTION__); return 0;}
执行后:
Function Name:wmain
不过,这些宏都是ANSI版本的。没有Unicode版本,实际使用时有点麻烦。
__FUNCTIONW__
今天查找了下资料,找到了解决办法,与大家分享。
在yvals.h 定义了一个__FUNCTIONW__ ,即Unicode版本的__FUNCTION__
所以如果需要使用Unicode版本的话,直接包含这个头文件,然后使用即可:
#include <yvals.h>int _tmain(int argc, _TCHAR* argv[]){ wprintf(L"Function Name:%s", __FUNCTIONW__); return 0;}
如果你不想包含yvals.h的话,可以在你的头文件上面加下面的三句定义,也可以使用了:
#define __STR2WSTR(str) L##str#define _STR2WSTR(str) __STR2WSTR(str)#define __FUNCTIONW__ _STR2WSTR(__FUNCTION__)int _tmain(int argc, _TCHAR* argv[]){ wprintf(L"Function Name:%s", __FUNCTIONW__); return 0;}
0 0
- 使用Unicode版的预定义宏__FUNCTION__
- C++零食:使用Unicode版的预定义宏__FUNCTION__
- C语言中预定义符 __FILE__, __LINE__, __FUNCTION__, __DATE__, __TIME__ 的使用演示
- C语言中预定义符 __FILE__, __LINE__, __FUNCTION__, __DATE__, __TIME__ 的使用
- 关键字: C/C++,预定义宏,__FILE__, __LINE__, __DATE__,__TIME__,__func__,__FUNCTION__ __FILE__:当前源代码文件名的字符串文
- 预定义宏的使用
- GNU C语言的 扩展(五) __FUNCTION__ 预定义标志符
- 预定义的使用
- 深入理解C++11之__FUNCTION__预定义标识符
- __FILE__和__FUNCTION__的使用
- 宏的高级使用--##,__VA_ARGS__, __FILE__, __FUNCTION__等
- 宏的高级使用--##,__VA_ARGS__, __FILE__, __FUNCTION__等
- 宏的高级使用--##,__VA_ARGS__, __FILE__, __FUNCTION__等
- 宏的高级使用--##,__VA_ARGS__, __FILE__, __FUNCTION__等
- C++笔记:宏的高级使用--##、__VA_ARGS__、__FILE__、__FUNCTION__
- 宏的高级使用--##,__VA_ARGS__, __FILE__, __FUNCTION__等
- 宏的高级使用--##,__VA_ARGS__, __FILE__, __FUNCTION__等
- 宏的使用__VA_ARGS__, __FILE__, __FUNCTION__,__TIME__等
- 怎样在loop中处理异常
- TOMCAT架构分析
- 小常识
- 算法导论第三章函数的增长问题研究
- Android Developers:两个视图渐变
- 使用Unicode版的预定义宏__FUNCTION__
- WCF 动态实现数据契约 ServiceKnownType
- Crontab问题总结
- jar加载过程,动态加载
- Matlab中二维空间变换
- 5.13 内部类
- HttpClient4.x —— Cookie 版本
- 开发环境资料收集
- TECH: Summary For Forcing The Database Open With `_ALLOW_RESETLOGS_CORRUPTION` with Automatic Undo M