トップ  >  お問合せ(Contact)  >  デバッグ用printf
デバッグ用printf
Q.
MQLでは、PrintFormatなる関数があると思いますが、
この呼び出しの前にDEBUGフラグを参照して、出力するかしないかを一括管理したいと考えております。

この関数は、可変長引数を受け取りますが、
開発者が、可変長引数を持つ関数を定義することは可能なのでしょうか。

以下のような実装は不可能でしょうか。

void PrintIfDebug(string format, 可変長引数) {
#ifdef DEBUG
PrintFormat(format, 可変長引数);
#ifdef
}
A.
MQLでは自前の関数で可変長引数を持たせる事は出来なかったと思います。(MQLの開発者では無いので、絶対とは言い切れませんが・・・)

可変長引数を持たせる事は出来ないので、 StringFormatPrintを組み合わせてみては如何でしょう?
以下サンプルソースを参考にしてみて下さい。


サンプルソース:
#define DEBUG    1

#define PrintIfDebug DPrint(StringFormat

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
{

    PrintIfDebug( "【%d】%s"  , __LINE__ , "test1"));

    DPrint( StringFormat("【%d】%s"  , __LINE__ , "test2"));

}


void DPrint( String in_str ) {

#ifdef DEBUG
    Print( in_str );
#endif

}



スポンサーリンク
検索

↑の検索エンジンが表示されない人は、
↓の古い検索エンジンを使用して下さい。
カスタム検索
MQL4リファレンスツリー
スポンサーリンク
スポンサーリンク


Copyright ©2015 MT4でEA自作しちゃお~ All Rights Reserved.


Top

inserted by FC2 system