logo

C での #define

Cプログラミングでは、 #定義する マクロを定義するために使用されるプリプロセッサ ディレクティブです。マクロは #define で定義された識別子であり、コンパイル前にその値に置き換えられます。 #define を使用してマクロのような定数や関数を定義できます。 C のジェネリックも、#define プリプロセッサ ディレクティブと次のコマンドを使用して実装されます。 _ジェネリック。

C #define の構文

#define の構文 プリプロセッサディレクティブ C では次のようになります。



定数を定義する場合

  #define   MACRO_NAME   value>

式を定義する場合

  #define   MACRO_NAME   (expression within brackets)>

パラメータを使用した式の定義用

マクロで渡された引数は式で使用できます。

  #define   MACRO_NAME(  ARG1, ARG2  ,..)   (expression within brackets)>

マクロを定義する方法は他にもいくつかあります。詳細については、この記事を参照してください – C のマクロとその型

C #define の例

例 1:

以下の例では、マクロを定義しています。 「ピ」 そして、プログラムの後半で円の面積を計算するために使用できる定数値を割り当てました。



C






// C Program to illustrate how to use #define to declare> // constants> #include> > // Defining macros with constant value> #define PI 3.14159265359> > int> main()> {> > >int> radius = 21;> >int> area;> > >// Using macros to calculate area of circle> >area = PI * radius * radius;> > >printf>(>'Area of Circle of radius %d: %d'>, radius, area);> > >return> 0;> }>

>

>

出力

bash for ループ
Area of Circle of radius 21: 1385>

例 2:

以下の例では、マクロを定義しています。 「ピ」 式を割り当て、その式の値がプログラムで使用されます。 「ピ」。

C




// C Program to illustrate the defining of expression using> // #define> #include> > // Defining macros with expression> #define PI (22 / 7)> > int> main()> {> > >int> radius = 7;> >int> area;> > >// Using macros to calculate area of circle> >area = PI * radius * radius;> > >printf>(>'Area of Circle of radius %d: %d'>, radius, area);> > >return> 0;> }>

>

>

出力

Area of Circle of radius 7: 147>

例 3:

以下の例では、2 つのマクロを定義しています。 CIRCLE_AREA そして SQUARE_AREA パラメータを指定し、そのパラメータを式で使用して円と正方形の面積をそれぞれ計算します。

C




// C Program to define the function like macros using> // #define> #include> > // Defining parameterized macros with expression> #define CIRCLE_AREA(r) (3.14 * r * r)> #define SQUARE_AREA(s) (s * s)> > int> main()> {> > >int> radius = 21;> >int> side = 5;> >int> area;> > >// Using macros to calculate areas by> >// passing argument> >area = CIRCLE_AREA(radius);> >printf>(>'Area of Circle of radius %d: %d '>, radius,> >area);> > >area = SQUARE_AREA(side);> >printf>(>'Area of square of side %d: %d'>, side, area);> > >return> 0;> }>

>

>

出力

Area of Circle of radius 21: 1384 Area of square of side 5: 25>

注意事項

  • #define を使用して宣言されたマクロは定数を保存するために使用され、変更できません。変数をマクロに割り当てることはできません。
  • は使用できません。 「=」 マクロに値を割り当てる演算子 (例: #PI 3.14 を定義する )。
  • セミコロンは使用しません 「;」 #define のステートメントの最後に。