定義済みプリプロセッサー・シンボルの使用

プリプロセッサー・シンボル (マクロ) を使用すると、コンパイルする前にプログラムの値を置換することができます。この処理は、前処理フェーズで行います。

一部のプリプロセッサー・シンボルはコンパイラー・システムによって事前定義されており、コンパイラー宣言子および fpp で使用できます。他のシンボルを使用する場合は、コマンド行で指定します。

前処理中に使用されるシンボル名を定義するには、-D オプション (Linux* および Mac OS* X) または /D オプション (Windows*) を使用します。このオプションの機能は、#define というプリプロセッサー宣言子と同じです。

詳細は、次のトピックを参照してください。

fpp を使用して前処理を行うと、定義したシンボルの名前が検出されるたびに、指定されている値に置換されます。前処理コンパイラー宣言子では、IF と IF DEFINED のみ許可されています。

前処理時のシンボルの置換 (マクロの展開とも呼ぶ) を無効にするには、-fpp:"-macro=no" (Linux および Mac OS X) または /fpp:"/macro=no" (Windows) を指定します。

前処理時のシンボルの置換を無効にすることで、fpp を使用して、置換せずに、条件付きコンパイル (#ifdef の使用など) を実行することができます。  

プリプロセッサー・シンボルの自動定義を抑止するには、-U オプション (Linux および Mac OS X) または /U オプション (Windows) を使用します。このオプションは、指定された名前について、現在有効になっているシンボル定義を抑止するために使用します。このオプションの機能は、#undef というプリプロセッサー宣言子と同じです。

詳細は、次のトピックを参照してください。

Windows:

次の説明は Windows システムが対象になります。

プリプロセッサー・シンボルの指定は、コマンドライン、または Visual Studio* 統合開発環境 (IDE) から指定できます。IDE では、[Project (プロジェクト)] > [Properties (プロパティ)] > [Fortran] を選択し、[General (全般)] カテゴリーの [Preprocessor Definitions (プリプロセッサーの定義)] オプションを使用するか、[Preprocessor (プリプロセッサー)] カテゴリーのオプションを使用します。

次に、利用可能なプリプロセッサー・シンボルを示します。

事前定義のシンボル名および値 シンボルが定義される条件

__INTEL_COMPILER=1100

インテル(R) Fortran コンパイラーを識別する場合

__INTEL_COMPILER_BUILD_DATE=YYYYMMDD

インテル(R) 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_IA64=64n00

IA-64 アーキテクチャー・ベースのシステムのみ。n には /G で指定された数値が割り当てられます (例えば、/G1 の場合は _M_IA64=64200)。

_M_X64

インテル(R) 64 アーキテクチャー・ベースのシステムのみ。インテル(R) 64 対応アプリケーションの条件付けに使用する場合。

_M_AMD64

インテル(R) 64 アーキテクチャー・ベースのシステムのみ。 このシンボルは、デフォルトで設定されています。

_OPENMP=200805

OpenMP* 処理が要求された (つまり、/Qopenmp が指定された) 場合。この値は YYYYMM 形式で、YYYYMM はそれぞれ OpenMP Fortran 仕様でサポートされた年と月を表します。このプリプロセッサー・シンボルは、fpp と Fortran コンパイラーの条件付きコンパイルの両方で使用することができます。

_PGO_INSTRUMENT

/Qprof_gen が指定された場合

_WIN32

常に定義されます

_WIN64

インテル(R) 64 および IA-64 アーキテクチャー・ベースのシステムのみ。

_VF_VER=1100

Compaq* Visual Fortran 互換のコンパイルコマンド (df または f90) が使用された場合

非ネイティブな IA-64 対応アプリケーション用コンパイラーを使用した場合、使用中のシステムではなく、実行ファイルのターゲット・プラットフォームに対してプラットフォーム固有のシンボルが設定されます。

Linux および Mac OS X:

次の説明は Linux および Mac OS X に適用されます。

シンボル名 デフォルト アーキテクチャー (IA-32、インテル(R) 64、IA-64) 説明

__INTEL_COMPILER=n

オン、n=1100

すべて

インテル(R) Fortran コンパイラーを識別します。

__INTEL_COMPILER_BUILD_DATE
=
YYYYMMDD

 

すべて

インテル(R) Fortran コンパイラーのビルドの日付を示します。

__linux__ (Linux のみ)
__linux
(Linux のみ)
__gnu_linux__
(Linux のみ)
linux
(Linux のみ)
__unix__
(Linux のみ)
__unix
(Linux のみ)
unix
(Linux のみ)
__ELF__
(Linux のみ)

 

すべて

コンパイル開始時に定義されます。

__APPLE__ (Mac OS X のみ)
__MACH__ (Mac OS X のみ)

 

IA-32 アーキテクチャー

コンパイル開始時に定義されます。

__i386__
__i386
i386

 

IA-32 アーキテクチャー

プログラムをコンパイルするターゲット・ハードウェアのアーキテクチャーを識別します。

__ia64__ (Linux のみ)
__ia64
(Linux のみ)

 

IA-64

プログラムをコンパイルするターゲット・ハードウェアのアーキテクチャーを識別します。

__x86_64
__x86_64__

 

インテル(R) 64 アーキテクチャー

プログラムをコンパイルするターゲット・ハードウェアのアーキテクチャーを識別します。

_OPENMP=n

n=200805

すべて

YYYYMM 形式で、YYYYMM はそれぞれ OpenMP Fortran の仕様に対応した年と月を表します。fpp と Fortran コンパイラーの条件付きコンパイルの両方で、このプリプロセッサー・シンボルを使用できます。-openmp が指定されたときのみ使用できます。

_PGO_INSTRUMENT

オフ

すべて

-prof-gen が指定された場合

__PIC__
__pic__

オフ (Linux)、
オン (Mac OS X)

すべて

位置に依存しないコードとしてコンパイルする場合に設定します。Mac OS X では、これらのシンボルは常に設定されます。