プリプロセッサー・シンボル (マクロ) は、コンパイルする前にプログラムの値を置換します。この処理は、前処理フェーズで行います。
次に、利用可能なプリプロセッサー・シンボルを示します。
定義済みプリプロセッサー・シンボル
|
説明
|
__INTEL_MKL__
|
インテル® MKL のメジャーバージョン
|
__INTEL_MKL_MINOR__
|
インテル® MKL のマイナーバージョン
|
__INTEL_MKL_UPDATE__
|
インテル® MKL のアップデート番号
|
INTEL_MKL_VERSION
|
インテル® MKL のフルバージョン
INTEL_MKL_VERSION = (__INTEL_MKL__*100+__INTEL_MKL_MINOR__)*100+__INTEL_MKL_UPDATE__
|
これらのシンボルを使用することで、ライブラリーの特定のバージョンで追加された新しい機能を使用するコードの条件付きコンパイルが有効になります。
条件付きコンパイルを実行するには、次の操作を行います。
- マクロが定義されているファイルをコードにインクルードします。
- mkl.h (C/C++ の場合)
- mkl.fi (Fortran の場合)
- [オプション] 次のプリプロセッサー宣言子を使用してマクロが定義されているかどうかを確認します。
- #ifdef および #endif (C/C++ の場合)
- !DEC$IF DEFINED および !DEC$ENDIF (Fortran の場合)
- 次のプリプロセッサー宣言子を使用してコードを条件付きでインクルードします。
- #if および #endif (C/C++ の場合)
- !DEC$IF および !DEC$ENDIF (Fortran の場合)
例
この例は、インテル® MKL の固有のバージョンに対して条件付きでコードセグメントをコンパイルする方法を示しています。ここで対象としているバージョンは 10.3 Update 4 です。
C/C++:
#include "mkl.h"
#ifdef INTEL_MKL_VERSION
#if INTEL_MKL_VERSION == 100304
// 条件付きでコンパイルするコード
#endif
#endif
Fortran:
include "mkl.fi"
!DEC$IF DEFINED INTEL_MKL_VERSION
!DEC$IF INTEL_MKL_VERSION .EQ. 100304
* 条件付きでコンパイルするコード
!DEC$ENDIF
!DEC$ENDIF