最近在看微软的《编程精粹》,有一道题目是:
每当使用 ASSERT,宏__FILE__就产生一个唯一的文件名字符串。怎样实现ASSERT 宏,才能使文件名字符串在每个文件中只被定义一次?
想到MFC中的代码:
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
这样,当需要使用宏__FILE__时,就用THIS_FILE代替,可以节省程序空间。