Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

Cで事前定義された識別子__func__


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

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

ここでは、Cプログラミング言語のこれらの事前定義された識別子の1つである__func__が表示されます。

__func__の正式な定義は-

です。

「識別子__func__は、各関数定義の冒頭中括弧の直後に宣言されているかのように、翻訳者によって暗黙的に宣言されるものとします。

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

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

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

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

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

出力

function2
function1

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

この識別されたものは、メインの方法でも機能します。例、

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

出力

main

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

見てみましょう

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

出力

error

Cプログラミング言語には、同様の識別作業を行う同様の機能が他にもあります。一部は

__ファイル__ −現在のファイルの名前を返します。

__ LINE __ −現在の行の番号を返します。

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

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

出力

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

説明 −これらは、ファイル名、コード行、および__func __、__ LINE __、__FILE__識別子を使用して現在呼び出されている関数に関する情報を収集したときに役立つ可能性のあるいくつかの一般的な関数です。


  1. Cのfillpoly()関数

    コンセプト ヘッダーファイルgraphics.hには、三角形、長方形、五角形、六角形などのポリゴンを描画して塗りつぶすために実装されたfillpoly()関数が含まれています。したがって、この関数にはdrawpoly()と同じ引数が必要です。 構文 void fillpoly( int number, int *polypoints ); この場合、numberは(n + 1)点の数を示します。ここで、nはポリゴン内の頂点の数であり、polypointsは(n * 2)整数のシーケンスを指します。 入力 arr[] = {320, 150, 400, 250, 250, 350, 32

  2. Cグラフィックのbar()関数

    bar() functionは、Cプログラミング言語でグラフィックを描画するために使用されるCグラフィック関数です。 graphics.hヘッダーには、グラフィックの描画に機能する関数が含まれています。 bar()関数もヘッダーファイルで定義されています。 構文 ボイドバー(int左、int上、int右、int下); bar()関数は、2次元の図形である(棒グラフの)棒を描画するために使用されます。塗りつぶされた長方形の図です。この関数は、バーの左上隅の(X、Y)座標{左と上}とバーの右下隅の(X、Y)座標{右と下}の4つの引数を取ります。 }。 プログラム #include <g