Date
Sep. 8th, 2024
 
2024年 8月 6日

Post: __FUNCTION__ 与 __func__ 浅析

__FUNCTION__ 与 __func__ 浅析

Published 12:10 Oct 31, 2012.

Created by @ezra. Categorized in #Programming, and tagged as #C/C++.

Source format: Markdown

Table of Content

可能大家在日常开发中经常用到 __func____FUNCTION__,但不知道有没有和我一样,一开始并不知道两者有什么区别该使用哪个,该注意什么。

__func__

__func__ 是 C99 引入的新标识符,用来报告未被修饰的正在被访问的函数名。

__func__ 并不是宏定义,事实上它是以隐式声明的常量字符数组的形式实现的,其定义是:

static const char __func__[] = "function-name";

__FUNCTION____FUNC__

我们知道,ISO C++ 标准中并不完全支持 C99 的全部特性,前面提到的 __func__ 正是不被支持的特性之一,因此许多编译器提供 __FUNCTION__ 作为代替,通常它是定义为 __func__ 的宏,因此在功能上并没有什么差异。

如果你在某些开发环境中见到 __FUNC__,事实上它与 __FUNCTION__ 是类似的。

其它

在 GCC 3.0 以及之后的版本,同时支持 __FUNCTION____func__

Pinned Message
HOTODOGO
The Founder and CEO of Infeca Technology.
Developer, Designer, Blogger.
Big fan of Apple, Love of colour.
Feel free to contact me.
反曲点科技创始人和首席执行官。
程序猿、设计师、奇怪的博主。
苹果死忠、热爱色彩斑斓的世界。
如有意向请随时 与我联系