条件付き取り込みについて調べてみました。

#if、#elif、#else、#endif等の
プリプロセッサ指令を使うことにより、
ソースコードの条件付き取り込みを行うことができる。

#if、#elifに続く取り込みを制御する式は
整数定数式でなければならない。
その式は、キャストを含んではならない。
define演算子を用いた、
defined 識別子あるいはdefined (識別子)という表現は可能。
この時、識別子がマクロ名として定義されていれば
制御式を1と評価する。そうでない場合は0と評価する。

制御式の評価結果が0以外ならば、
その間にあるソースコードはコンパイル対象となる。

制御式中のマクロ置換は、
(defined演算子のオペランドになるマクロ名を除く)
評価の前に行われる。

この変換で、字句definedが生成される場合の動作は未定義。

#ifdefと#ifndefは、それぞれ
#if defined 識別子、#if !defined 識別子と等価。

条件付き取り込みを入れ子にすることは可能。

コメント

最新の日記 一覧

<<  2025年6月  >>
1234567
891011121314
15161718192021
22232425262728
293012345

お気に入り日記の更新

テーマ別日記一覧

この日記について

日記内を検索