首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

为何关于函数的宏都不能出现在函数体的外部

2013-03-06 
为什么关于函数的宏都不能出现在函数体的外部?__FUNCTION____FUNCSIG____FUNCDNAME__想实现这样的函数int

为什么关于函数的宏都不能出现在函数体的外部?
__FUNCTION__
__FUNCSIG__
__FUNCDNAME__

想实现这样的函数
int test(char* pFun = __FUNCTION__);
编译出错error C2457: “__FUNCTION__”: 预定义的宏不能出现在函数体的外部

不知道该怎么弄。

[解决办法]
因为__FUNCTION__的本质是代码替换,而函数默认值是一个固定的值,所以不能这样写。
我自己是用折中方案,用另一个宏来完成这个效果,如:

#define TEST  test(__FUNCTION__);

要调test的时候就调用宏TEST。

热点排行