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__ 識別符號呼叫的函式的資訊,它們可能很有用。

更新於: 2020年2月4日

2K+ 閱讀量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.