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