私はオンライン チュートリアルに従い、#undef
デバッグ出力関数の設計に使用したいと考えました。debugOut.h
ファイルを書きました。内容は以下の通りです:</p>
#include <stdio.h>
#define NOOP //(void(0))
#undef DEBUG_PRINT
#if DEBUG_OUT
#define DEBUG_PRINT printf
#else
#define DEBUG_PRINT(...) NOOP
#endif
#undef DEBUG_OUT
次に、設計が正しいかどうかをテストするメイン関数を作成しました。
#include<iostream>
#include "Header/debug_out.h"
#define DEBUG_OUT
int main(){
DEBUG_PRINT("module1 debug...\n");
printf("hello,world");
}
しかし、出力結果はhello, world
. なぜ私が定義#define DEBUG_OUT
したのか、なぜにDEBUG_PRINT
置き換えられないのかprintf
私はオンラインチュートリアルに基づいてそれを書きました。これを元にc++の出力関数を書きたいと思います。しかし、文#define DEBUG_PRINT(...) NOOP
では、何(...)
を表していますか? マクロ定義が置き換えられたものを出力する方法はありますか?