次のようなことができるようになりたい
#print "C Preprocessor got here!"
デバッグ目的で。これを行うための最良/最もポータブルな方法は何ですか?
次のようなことができるようになりたい
#print "C Preprocessor got here!"
デバッグ目的で。これを行うための最良/最もポータブルな方法は何ですか?
回答:
このwarning
ディレクティブはおそらく最も近いものですが、プラットフォームに完全に依存しているわけではありません。
#warning "C Preprocessor got here!"
これは、MSVCを除くほとんどのコンパイラで機能します。MSVCでは、pragma
ディレクティブを使用する必要があります。
#pragma message ( "C Preprocessor got here!" )
#define WARNING(msg) _Pragma("message " #msg)
できません。プリプロセッサはCコードの前に処理されます。画面に出力するプリプロセッサディレクティブはありません。プリプロセッサコードは実行されないため、実行可能コードにコンパイルされるCコードを生成するために使用されます。
何か問題があります:
#ifdef ...
printf("Hello");
#endif
これは、プリプロセッサが実行できる限り実行できるすべてです。
#ifdef _LINUX #define #preprocmsg "#warning" else #define #preprocmsg "#pragma message"
。...試してみる必要がありますが、本能は答えがノーだと教えてくれます。