C语言中的预定义标识符 __func__
标识符是在编程中赋予实体的名称,用于在程序中识别它。
通常,标识符由程序员创建以提高工作效率,但有一些预定义的标识符是内置在编程中的。例如,cout、cin 等。
这里,我们将了解 C 编程语言中这些预定义标识符之一,即 __func__。
__func__ 的正式定义如下:
“翻译器将隐式声明标识符 __func__,就像在每个函数定义的开始花括号之后立即出现以下声明一样:
static const char __func__[] = “function-name”;
其中 function-name 是词法上封闭函数的名称。”
C 程序 __func__ 是编译器生成的标识符,用于使用函数名称标识函数。
让我们看几个代码示例,以便更清楚地理解这个概念,
示例
#include <stdio.h> void function1 (void){ printf ("%s
", __func__); } void function2 (void){ printf ("%s
", __func__); function1 (); } int main (){ function2 (); return 0; }
输出
function2 function1
解释 - 在这里,我们使用了 __func__ 方法来返回被调用的函数的名称。该标识符返回调用它的函数的名称。两个 print 语句都调用了 __func__ 以进行其自身方法的引用。
此标识符甚至适用于 main 方法。例如,
示例
#include <stdio.h> int main (){ printf ("%s
", __func__); return 0; }
输出
main
但是它不能被重写,即 __func__ 仅保留用于函数名称。使用它来存储任何其他内容将返回错误。
让我们看看
示例
#include <stdio.h> int __func__ = 123; int main (){ printf ("%s
", __func__); return 0; }
输出
error
C 编程语言中还有其他类似的函数执行类似的识别工作。一些是
__FILE__ - 返回当前文件的名称。
__LINE__ - 返回当前行的行号。
让我们看一段代码来展示实现
示例
#include <stdio.h> void function1(){ printf("The function: %s is in line: %d of the file :%s
", __func__,__LINE__,__FILE__); } int main(){ function1(); return 0; }
输出
The function: function1 is in line: 3 of the file :main.c
解释 - 这些是一些通用的函数,因为我们已经收集了有关文件名、代码行以及当前使用 __func__、__LINE__、__FILE__ 标识符调用的函数的信息,它们可能很有用。
广告