标识符是在编程中为实体指定的名称,以在程序中进行标识。
通常,标识符是由程序员创建的以便有效工作,但是在编程中内置了一些预定义的标识符。例如,cout,cin等。
在这里,我们将看到C编程语言的这些预定义标识符之一,即__func__。
__func__的正式定义是-
“标识符__func__应该由翻译器隐式声明,就像在紧随每个函数定义的大括号之后,声明
static const char __func__[] = “function-name”;
出现,其中function-name是词法包围函数的名称。”
C程序__func__是编译器生成的标识符,用于通过函数名称标识函数。
让我们看一些代码示例,以使概念更清晰,
#include <stdio.h> void function1 (void){ printf ("%s\n", __func__); } void function2 (void){ printf ("%s\n", __func__); function1 (); } int main (){ function2 (); return 0; }
输出结果
function2 function1
解释-在这里,我们使用了__func__方法来返回被调用函数的名称。标识符返回调用它的函数的名称。这两个print语句均要求__func__作为其自己的方法引用。
这样确定的方法甚至适用于主要方法。例,
#include <stdio.h> int main (){ printf ("%s\n", __func__); return 0; }
输出结果
main
但这不能被覆盖,即__func__仅保留用于函数名称。用它存储其他任何东西都会返回错误。
让我们来看看
#include <stdio.h> int __func__ = 123; int main (){ printf ("%s\n", __func__); return 0; }
输出结果
error
C编程语言中还有其他类似的功能,它们也可以完成类似的识别工作。有些是
__File__-返回当前文件的名称。
__LINE__-返回当前行号。
让我们看一个代码来展示实现
#include <stdio.h> void function1(){ printf("The function: %s is in line: %d of the file :%s\n", __func__,__LINE__,__FILE__); } int main(){ function1(); return 0; }
输出结果
The function: function1 is in line: 3 of the file :main.c
解释-这些是一些通用函数,可能有用,因为我们收集了有关使用__func __,__ LINE __,__ FILE__标识符调用的文件名,代码行和函数的信息。