ホームページ  >  記事  >  バックエンド開発  >  C 言語では、事前定義された識別子 __func__

C 言語では、事前定義された識別子 __func__

王林
王林転載
2023-08-30 12:49:06801ブラウズ

C 言語では、事前定義された識別子 __func__

識別子 は、プログラム内でエンティティを識別するためにプログラミングでエンティティに与えられる名前です。

通常、識別子は効率的に動作するためにプログラマによって作成されますが、プログラミングに組み込まれた事前定義された識別子もいくつかあります。たとえば、cout、cin などです。

ここでは、C プログラミング言語の事前定義された識別子である __func__ について説明します。

#__func__ の正式な定義は -

です。 「識別子 __func__ は、各関数定義の左中括弧の直後であるかのように、翻訳者によって暗黙的に宣言されます。宣言は同じです」 ."

static const char __func__[] = “function-name”;

appeared、ここで function-name は字句的に囲む関数の名前です。"

C プログラム __func__ は、コンパイラによって生成された識別子であり、識別するために作成されます。関数名を使用した関数。

概念をより明確にするために、いくつかのコード例を見てみましょう。

Example

ライブ デモ

#include <stdio.h>
void function1 (void){
   printf ("%s</p><p>", __func__);
}
void function2 (void){
   printf ("%s</p><p>", __func__);
   function1 ();
}
int main (){
   function2 ();
   return 0;
}

出力

function2
function1

説明 - ここでは、__func__ メソッドを使用して、呼び出される関数の名前を返します。識別子は、呼び出された関数の名前を返します。両方の print ステートメントで __func__ を呼び出して取得します。独自のメソッド参照。

この識別子はメイン メソッドでも使用できます。例:

Example

Online Demonstration

#include <stdio.h>
int main (){
   printf ("%s</p><p>", __func__);
   return 0;
}

Output

main

ただし、これは上書きできません。つまり、__func__ は関数名のみに予約されています。それ以外のものを保存するために使用すると、エラーが返されます。

例を見てみましょう

ライブ デモ

#include <stdio.h>
int __func__ = 123;
int main (){
   printf ("%s</p><p>", __func__);
   return 0;
}

出力

error

C プログラミング言語には、同様の認識作業を実行できる類似の関数が他にもあります。 # - 現在のファイルの名前を返します。

__LINE__ - 現在の行の番号を返します。

実装を示すコードを見てみましょう

オンラインデモンストレーション

#include <stdio.h>
void function1(){
   printf("The function: %s is in line: %d of the file :%s</p><p>", __func__,__LINE__,__FILE__);
}
int main(){
   function1();
   return 0;
}

出力

The function: function1 is in line: 3 of the file :main.c

説明

- これらは、ファイルに関する情報を収集するときに使用される可能性のある一般的な関数です。名前、コード行、および現在呼び出されている関数に関する情報には、 __func__、__LINE__、__FILE__ 識別子を使用します。

以上がC 言語では、事前定義された識別子 __func__の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。