インテル® Fortran コンパイラー XE 13.1 ユーザー・リファレンス・ガイド
プリプロセッサー・シンボル (マクロ) を使用すると、コンパイルする前にプログラムの値を置換することができます。この処理は、前処理フェーズで行います。
一部のプリプロセッサー・シンボルはコンパイラー・システムによって事前定義されており、コンパイラー宣言子および fpp で使用できます。他のシンボルを使用する場合は、コマンド行で指定します。
前処理中に使用されるシンボル名を定義するには、-D (Linux* および OS X*) または /D (Windows*) を使用します。 このオプションの機能は、#define というプリプロセッサー宣言子と同じです。
詳細は、次のトピックを参照してください。
D コンパイラー・オプション
fpp を使用して前処理を行うと、定義したシンボルの名前が検出されるたびに、指定されている値に置換されます。前処理コンパイラー宣言子では、IF と IF DEFINED のみ許可されています。
前処理時のシンボルの置換 (マクロの展開とも呼ぶ) を無効にするには、-fpp:"-macro=no" (Linux* および OS X*) または /fpp:"/macro=no" (Windows*) を指定します。
前処理時のシンボルの置換を無効にすることで、fpp を使用して、置換せずに、条件付きコンパイル (#ifdef の使用など) を実行することができます。
プリプロセッサー・シンボルの自動定義を抑止するには、-U オプション (Linux* および OS X*) または /U オプション (Windows*) を使用します。 このオプションは、指定された名前について、現在有効になっているシンボル定義を抑止するために使用します。 このオプションの機能は、#undef というプリプロセッサー宣言子と同じです。
詳細は、次のトピックを参照してください。
U コンパイラー・オプション
Windows*:
次の説明は Windows* システムが対象になります。
プリプロセッサー・シンボルの指定は、コマンドライン、または Visual Studio* 統合開発環境 (IDE) から指定できます。IDE では、[Project (プロジェクト)] > [Properties (プロパティ)] を選択し、[General (全般)] カテゴリーの [Preprocessor Definitions (プリプロセッサーの定義)] オプションを使用するか、[Preprocessor (プリプロセッサー)] カテゴリーのオプションを使用します。
次に、利用可能なプリプロセッサー・シンボルを示します。
Windows* の事前定義のシンボル名および値 |
シンボルが定義される条件 |
---|---|
__INTEL_COMPILER=1300 |
インテル® Fortran コンパイラーを識別する場合 |
__INTEL_COMPILER_BUILD_DATE=YYYYMMDD |
インテル® Fortran コンパイラーのビルドの日付を識別する場合 |
_DLL=1 |
/libs:dll、/MDs、/MD、/dll、または /LD が指定された場合のみ。/libs:static が指定された場合は定義されません。 |
_MT=1 |
/threads または /MT が指定された場合のみ |
_M_IX86=n00 |
IA-32 アーキテクチャー・ベースのシステムのみ。n には /G で指定された数値が割り当てられます (例えば、/G7 の場合は _M_IX86=700)。 |
_M_X64 |
インテル® 64 アーキテクチャー・ベースのシステムのみ。インテル® 64 対応アプリケーションの条件付けに使用する場合。 |
_M_AMD64 |
インテル® 64 アーキテクチャー・ベースのシステムのみ。このシンボルは、デフォルトで設定されています。 |
_OPENMP=201107
|
OpenMP* 処理が要求された (つまり、/Qopenmp が指定された) 場合。この値は YYYYMM 形式で、YYYY と MM はそれぞれ OpenMP* Fortran 仕様でサポートされた年と月を表します。 このプリプロセッサー・シンボルは、fpp と Fortran コンパイラーの条件付きコンパイルの両方で使用することができます。 |
_PGO_INSTRUMENT |
/Qprof_gen が指定された場合 |
_WIN32 |
常に定義されます |
_WIN64 |
インテル® 64 アーキテクチャー・ベースのシステムのみ。 |
Linux* および OS X*:
次の説明は Linux* および OS X* に適用されます。
特に明記されていない限り、シンボルはすべてのアーキテクチャーに適用されます。
Linux*/OS X* のシンボル名 |
説明 |
---|---|
__INTEL_COMPILER=n |
インテル® Fortran コンパイラーを識別する場合 デフォルト: ON、n=1300 |
__INTEL_COMPILER_BUILD_DATE =YYYYMMDD |
インテル® Fortran コンパイラーのビルドの日付を識別する場合 |
__linux__ (Linux* のみ) __linux (Linux* のみ) __gnu_linux__ (Linux* のみ) linux (Linux* のみ) __unix__ (Linux* のみ) __unix (Linux* のみ) unix (Linux* のみ) __ELF__ (Linux* のみ) |
コンパイル開始時に定義されます。 |
__APPLE__ (OS X* のみ) __MACH__ (OS X* のみ) |
コンパイル開始時に定義されます。 アーキテクチャー: IA-32 のみ |
__i386__ __i386 i386 |
プログラムをコンパイルするターゲット・ハードウェアのアーキテクチャーを識別します。 アーキテクチャー: IA-32 のみ |
__x86_64 __x86_64__ |
プログラムをコンパイルするターゲット・ハードウェアのアーキテクチャーを識別します。 アーキテクチャー: インテル® 64 のみ |
__MIC__n |
インテル® MIC アーキテクチャー・コプロセッサーでコンパイルされたコードの場合に設定します。 |
_OPENMP=n |
YYYYMM 形式で、YYYY と MM はそれぞれ OpenMP* Fortran の仕様に対応した年と月を表します。 fpp と Fortran コンパイラーの条件付きコンパイルの両方で、このプリプロセッサー・シンボルを使用できます。-openmp が指定されたときのみ使用できます。 デフォルト: n=201107
|
_PGO_INSTRUMENT |
-prof-gen が指定された場合 デフォルト: OFF |
__PIC__ __pic__ |
位置に依存しないコードとしてコンパイルする場合に設定します。OS X* では、これらのシンボルは常に設定されます。 デフォルト: OFF (Linux*)、ON (OS X*) |