その他のプリプロセッサ拡張
以下のページでは、定義済シンボル、プラグマディレクティブ、C規格ディレクティブ以外に利用可能なプリプロセッサ拡張について説明します。
#include_next
説明
これは#includeディレクティブの変数です。現在のソースファイル(#include_nextディレクティブが含まれているもの)があるディレクトリに従う検索パスで、ディレクトリにある名前が付けられたファイルだけを検索します。
NDEBUG
説明
このプリプロセッサシンボルは、アプリケーションに記述したアサートマクロをアプリケーションのビルドに含めるかどうかを決定します。
このシンボルを定義していない場合は、すべてのアサートマクロが評価されます。このシンボルを定義している場合は、すべてのアサートマクロがコンパイルから除外されます。すなわち、以下のケースがあります。
このシンボルを定義する場合、アサートコードが含まれない
このシンボルを定義しない場合、アサートコードが含まれる
したがって、アサートコードを記述し、アプリケーションをビルドする場合、このシンボルを定義することで、アサートコードを最終的なアプリケーションから除外できます。
注記
assert.h標準インクルードファイルでは、アサートマクロは定義されています。
IDEでは、リリースビルド構成でアプリケーションをビルドする場合、NDEBUGシンボルは自動的に定義されます。
関連項目
__STDC_WANT_LIB_EXT1__
説明
システムヘッダファイルに含まれる前に、このシンボルを1に定義すると、C標準のAnnex K、境界チェックインターフェースからの関数を使用できます。
関連項目
#warning
構文
#warning messagemessageには任意の文字列を指定できます。
説明
このプリプロセッサディレクティブは、メッセージを生成する場合に使用します。このディレクティブは、主にアサーションやその他のトレースユーティリティに便利です。C規格の#errorディレクティブの使用方法とよく似ています。このディレクティブは、‑‑strictコンパイラオプションの使用時は認識されません。