この章の概要です。
C言語や C++ では、#define を使ってマクロを定義でき、プリプロセスの処理の中で使用できます。マクロの中でも、引数を持たないオブジェクト形式マクロについては、ソースファイル上での定義だけでなく、コンパイルオプションの中で定義できます。
マクロ(オブジェクト形式マクロ)については、C言語編第23章を参照してください。
プロジェクト全体と使用できるように定義する方法と、ソースファイル1つを対象にして定義する方法があります。前者の場合、すべてのソースファイルでそのマクロを使用できるようになり、後者の場合はそのソースファイルでだけ使用できます。
プロジェクト全体で使用できるように定義する場合は、以下のように設定します。
<編集...>
を選択。XYZ
のように名前だけ入力した場合は、置換後の結果は 1
になるXYZ=100
のように名前と =値
を入力した場合、その値に置換されるマクロになる特定のソースファイルだけで使える定義にする場合は、以下のように設定します(2番以降はまったく同じです)。
置換後の値を指定しない場合、1
に置換されるものとして定義されます[1]。これは、ソースファイル上で #define を使って、置換後の結果を空になるように定義した場合とは異なります。
// XYZ を上記の方法で定義してある
("%d\n", XYZ); // OK. 1 に置換される printf
// XYZ をソースファイル上で以下のように定義する
#define XYZ
("%d\n", XYZ); // コンパイルエラー。XYZ は空に置換されるため文法エラーになる printf
Programming Place Plus のトップページへ
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
X で ポスト/フォロー | LINE で送る | noteで書く |
![]() |
管理者情報 | プライバシーポリシー |