C++ の #define ディレクティブとは何ですか

C No Define Direkutibutoha Hedesuka



C++ における前処理とは、ソース プログラム ファイルがプリプロセッサ ディレクティブに基づいて変更される、プログラムのコンパイルまたは変換の初期段階を指します。これらのディレクティブは、 # シンボルはプリプロセッサによって実行され、メイン プログラムが実行される前にソース コードに影響を与えます。

C++ のプリプロセッサ ディレクティブは、 # (ハッシュ) ステートメントの先頭にある記号。 C++ の一般的なプリプロセッサ ディレクティブには次のものがあります。 ファイルのインクルード マクロ 意味。これらのディレクティブは通常、C++ プログラムの先頭にある main() 関数の外側に配置されます。前処理中に、 。私 拡張子が生成されます。

C++ の #define ディレクティブ

C++ では、#define ディレクティブは、定数またはマクロを定義するために使用されるプリプロセッサ ディレクティブです。実際のコンパイル プロセスが行われる前に、コード全体で置換されるシンボリック名または値を定義できます。







#define プリプロセッサの主なハイライトをいくつか示します。



  • C++ では、プリプロセッサ ディレクティブ #define を使用してマクロを定義します。
  • C++ のマクロは、#define ディレクティブで宣言された名前付き定数または式です。
  • #define ディレクティブはマクロ ディレクティブとも呼ばれます。
  • C++ プログラムで #define ディレクティブが出現すると、最初のコンパイル段階で、定義されたマクロの名前が定数値または式に置き換えられます。

#define ディレクティブの構文

#define ディレクティブを使用するための構文は次のとおりです。



#define 識別子の値

ここで、identifier は定義されている定数またはマクロの名前で、value はコードのコンパイル時に置き換えられる値です。





#define ディレクティブの例

以下は、C++ コードで #define ディレクティブを使用する方法を説明する例です。

#include

#PI 3.14159 を定義

#define SQUARE(x) ((x) * (x))

整数 主要 ( ) {

ダブル 半径 = 5.0 ;

ダブル エリア = PI * 四角 ( 半径 ) ;

標準 :: コート << 'エリア: ' << エリア << 標準 :: 終わり ;

戻る 0 ;

}

この例では、#define ディレクティブを使用して 2 つの定数を定義します。PI は数学定数 pi を表し、SQUARE は指定された値の 2 乗を計算するマクロです。次に、コード内でこれらの定数を使用して、指定された半径の円の面積を計算します。



#define と const の違い

#define ディレクティブについて議論するときに生じる一般的な質問の 1 つは、C++ での const 変数の使用とどう違うのかということです。どちらのアプローチでもコード全体で使用できる定数を定義できますが、それらの間にはいくつかの重要な違いがあります。

大きな違いの 1 つは、 #定義 定数 #define はプリプロセッサ ディレクティブであるのに対し、const は C++ 言語自体の一部であるキーワードであるという点です。これは、#define を使用して定義された定数は、コードがコンパイルされる前にその値に置き換えられるのに対し、const 変数はコンパイラ自体によって処理されることを意味します。

#define と const のもう 1 つの重要な違いは、const 変数には特定の型があるのに対し、#define を使用して定義された定数には特定の型がないことです。つまり、特定の型が必要な場所では const 変数を使用できますが、#define を使用して定義された定数はそのような状況では常に機能するとは限りません。

結論

#define ディレクティブは、定数またはマクロを定義するために使用されるプリプロセッサ ディレクティブです。これにより、実際のコンパイル プロセスが行われる前に、コード全体で置換されるシンボリック名または値を定義できます。 C++ の #define ディレクティブの詳細については、この記事を参照してください。