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__ 标识符调用的函数的信息,它们可能很有用。
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP