关闭

使用ANSI C and Microsoft C++中常用的预定义宏

标签: microsoftc++filecemaildate
798人阅读 评论(0) 收藏 举报
分类:
__FILE__       源文件的名称  如XXX.cpp
__LINE__       代码在源文件中是第几行 
__DATE__      源文件完成日期如Aug 17 2011
__TIME__       源文件完成时间如19:31:13
__TIMESTAMP__ 源文件完成日期时间如Wed Aug 17 19:27:36 2011


如分配内存函数malloc()的一个版本就使用了上面的宏

#define   malloc(s)  _malloc_dbg(s, _NORMAL_BLOCK, __FILE__, __LINE__)

另外可以在程序中使用__FILE__和__LINE__来确定是哪个文件哪一行出错:

       char *pszFileName = (char*)malloc(MAX_PATH * sizeof(char));

       if (pszFileName == NULL)

              printf("Error in %s %d\n",  __FILE__, __LINE__);

当然实际程序中大多用__FILE__和__LINE__快速定位错误后不会直接输出,而是通过另一程序来将这些信息以EMAIL形式反馈给开发人员。

 

对__FILE__可以方便的转化成wchar_t类型,MSDN就有这个例子:

#define WIDEN2(x) L ## x

#define WIDEN(x) WIDEN2(x)

#define __WFILE__ WIDEN(__FILE__)

wchar_t *pwsz = __WFILE__;

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:232481次
    • 积分:3505
    • 等级:
    • 排名:第9425名
    • 原创:111篇
    • 转载:87篇
    • 译文:0篇
    • 评论:32条
    最新评论