__FUNCTION__, __func__, __PRETTY_FUNCTION__
来源:互联网 发布:python 字符串转json 编辑:程序博客网 时间:2024/06/06 05:49
http://blog.csdn.net/linuxheik/article/details/7621155
Solaris下支持C99的__func__
gcc 支持 __FUNCTION__, __func__, __PRETTY_FUNCTION__
俺一般使用__FUNC__
- C/C++ code
#if defined (__GNUC__)# define __FUNC__ ((const char*) (__PRETTY_FUNCTION__))#elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 19901L# define __FUNC__ ((const char*) (__func__))#else# define __FUNC__ ((const char*) (__FUNCTION__))#endif
http://blog.csdn.net/fullsail/article/details/
有一次为了调试ACE的代码打开了ACE_TRACE的开关,除了对蜂拥而出的日志输出有印象外还对ACE的函数进出提示产生了好感。对于后台调试的时候,往往必须使用大量的日志跟踪。而简单的加入函数进出的功能是一个不错的选择。
稍稍看了一下ACE的实现,感觉效果一般,还要自己写跟踪的函数名称。也不是太爽。(ACE估计是苦于大家对C++标准的支持程度)。感觉了一下,其实函数的进出跟踪都可以使用一个结构的构造和析构函数跟踪,而函数的信息完全可以使用各种宏代替。而这些信息可以作为参数传递给这个结构。
GCC实现了如下的函数宏
__func__ C99的标准,但是GCC只输出函数名称。不知道VC.NET 为啥不支持
__FUNCTION__ 同__func__,
__PRETTY_FUNCTION__ 非标准宏。这个宏比__FUNCTION__功能更强, 若用g++编译C++程序, __FUNCTION__只能输出类的成员名,不会输出类名;而__PRETTY_FUNCTION__则会以 <return-type> <class-name>::<member-function-name>(<parameters-list>) 的格式输出成员函数的详悉信息(注: 只会输出parameters-list的形参类型, 而不会输出形参名).若用gcc编译C程序,__PRETTY_FUNCTION__跟__FUNCTION__的功能相同.
而VC.NET提供的函数宏为:
__FUNCTION__ 函数,提供类名和函数名称的输出。
- __FUNCTION__, __func__, __PRETTY_FUNCTION__
- __FUNCTION__, __func__, __PRETTY_FUNCTION__
- __FUNCTION__, __func__, __PRETTY_FUNCTION__
- __FUNCSIG__、__FUNCDNAME__、__FUNCTION__、__func__、__PRETTY_FUNCTION__
- _FUNCTION__, __func__, __PRETTY_FUNCTION__
- _FUNCTION__, __func__, __PRETTY_FUNCTION__
- __FUNCSIG__ __FUNCDNAME__ __FUNCTION__ __func__
- __FUNCSIG__ __FUNCDNAME__ __FUNCTION__ __func__
- __func__ __FUNCTION__ __FUNCSIG__ __FUNCDNAME__
- __FUNCSIG__、__FUNCDNAME__、__FUNCTION__和__func__的区别和联系
- __func__
- __FUNCTION__
- __FUNCTION__
- 关键字: C/C++,预定义宏,__FILE__, __LINE__, __DATE__,__TIME__,__func__,__FUNCTION__ __FILE__:当前源代码文件名的字符串文
- __func__标识符
- __func__标识符
- __FUNCTION__,__LINE__
- __FUNCTION__, __LINE__
- C:\WINDOWS\Installer文件夹的安全清理
- Tomcat的目录和server.xml配置简介
- win7下安装hadoop
- 毕业后班级qq群这样发展
- 参数估计-最大似然估计、MAP及贝叶斯估计
- __FUNCTION__, __func__, __PRETTY_FUNCTION__
- twitter_bootstrap_第三章
- debug 打印 开关 设计(for c || C++)
- ruby遍历文件夹计算md5sum
- EntityFramework入门
- 你的光棍节怎么过?
- HDFS读书笔记-总体介绍(一)
- tomcat 报出 Parameters: invalid chunk ignored
- Ubuntu 9.10 IP地址设置