コンパイルに使用する定数(__○○__)
コンパイルに使用する定数は、コンパイルするときに使用します。
そのため、プログラムに記述することはほとんど無い定数です。
しかし、プログラムをデバッグするときに、とても便利な定数なので、プログラムを書くかたは、知っておくと良いでしょう。
ちなみにアンダーバーは、前後に2つずつです。
コンパイルに使用する定数を使用する関数は、特にありません。
定数単体として使うだけで、情報を参照することができます。
コンパイルに使用する定数(__○○__)
| 定数 | 説明 |
| __DATE__ | コンパイル時の日付 |
| __DATETIME__ | コンパイル時の日時 |
| __LINE__ | 定数が記述されたプログラムの行数 |
| __FILE__ | コンパイルしたファイル名 |
| __PATH__ | コンパイルしたファイルへの絶対パス |
| __FUNCTION__ | 定数が記述された関数名 |
| __FUNCSIG__ | 定数が記述された関数のシグネチャ |
| __MQLBUILD__ | コンパイラのビルド番号 |
| __MQL4BUILD__ | コンパイラのビルド番号 |
コンパイルに使用する定数(__○○__)の使い方
定数をプログラムに記述するだけで、その定数に対応した情報を取得することができます。
例えば、以下のように使用します。
void OnInit() {
Print(" 関数名= ",__FUNCTION__," ソースコード行数 = ",__LINE__); // ソースコードの7行目
}
上記のように記述すると、以下のように表示されます。
「出力結果:関数名= OnInit ソースコード行数 = 7」
サンプルプログラム
以下は、コンパイルに使用する定数をすべて出力するサンプルプログラムです。
//+------------------------------------------------------------------+
//| コンパイルに使用する定数 サンプルプログラム |
//+------------------------------------------------------------------+
void OnInit()
{
// コンパイル時の日付
Print("__DATE__ = ", __DATE__);
// コンパイル時の日時
Print("__DATETIME__ = ", __DATETIME__);
// 定数が記述されたプログラムの行数
Print("__LINE__ = ", __LINE__);
// コンパイルしたファイル名
Print("__FILE__ = ", __FILE__);
// コンパイルしたファイルへの絶対パス
Print("__PATH__ = ", __PATH__);
// 定数が記述された関数名
Print("__FUNCTION__ = ", __FUNCTION__);
// 定数が記述された関数のシグネチャ
Print("__FUNCSIG__ = ", __FUNCSIG__);
// コンパイラのビルド番号
Print("__MQLBUILD__ = ", __MQLBUILD__);
// コンパイラのビルド番号(MQL4用)
Print("__MQL4BUILD__ = ", __MQL4BUILD__);
}
//+------------------------------------------------------------------+
上記のプログラムを実行すると、ターミナルのエキスパートタブに以下のような情報が出力されます。
各定数がどのような値を返すのか、実際に確認してみてください。




