Skip to main content

IAR Embedded Workbench for Arm 9.70.x

その他のプリプロセッサ拡張

このセクションの内容:

以下のページでは、定義済シンボル、プラグマディレクティブ、C規格ディレクティブ以外に利用可能なプリプロセッサ拡張について説明します。

#include_next

説明

これは#includeディレクティブの変数です。現在のソースファイル(#include_nextディレクティブが含まれているもの)があるディレクトリに従う検索パスで、ディレクトリにある名前が付けられたファイルだけを検索します。

NDEBUG

説明

このプリプロセッサシンボルは、アプリケーションに記述したアサートマクロをアプリケーションのビルドに含めるかどうかを決定します。

このシンボルを定義していない場合は、すべてのアサートマクロが評価されます。このシンボルを定義している場合は、すべてのアサートマクロがコンパイルから除外されます。すなわち、以下のケースがあります。

  • このシンボルを定義する場合、アサートコードが含まれない

  • このシンボルを定義しない場合、アサートコードが含まれる

したがって、アサートコードを記述し、アプリケーションをビルドする場合、このシンボルを定義することで、アサートコードを最終的なアプリケーションから除外できます。

注記

assert.h標準インクルードファイルでは、アサートマクロは定義されています。

IDEでは、リリースビルド構成でアプリケーションをビルドする場合、NDEBUGシンボルは自動的に定義されます。

関連項目

__aeabi_assert

__STDC_WANT_LIB_EXT1__

説明

システムヘッダファイルに含まれる前に、このシンボルを1に定義すると、C標準のAnnex K、境界チェックインターフェースからの関数を使用できます。

関連項目

バウンドチェック機能 および C 境界チェックインターフェース

#warning

構文
#warning message

messageには任意の文字列を指定できます。

説明

このプリプロセッサディレクティブは、メッセージを生成する場合に使用します。このディレクティブは、主にアサーションやその他のトレースユーティリティに便利です。C規格の#errorディレクティブの使用方法とよく似ています。このディレクティブは、‑‑strictコンパイラオプションの使用時は認識されません。