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

王林
リリース: 2023-08-30 12:49:06
転載
787 人が閲覧しました

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 までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!