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