-2

check
で定義された変数の出力値を受け取りたい#define check something プリプロセッサディレクティブでこの値を受け取ることは可能ですか?
たとえば、次のようなものです。
#error check

4

3 に答える 3

2

#errorディレクティブはマクロ拡張されていません。また、そうではありません#warning

#errorこれは、またはを使用してプリプロセッサ式を出力できないことを意味します#warning

プリプロセッサ式の値に依存するメッセージを与えるのに最も近いのは、次のようなものです。

#if (MACRO < 12)
#error MACRO was less than 12
#elif (MACRO >15 && MACRO < 19)
#error Another message about MACRO
#endif

詳細については、ドキュメントの「条件」を参照してください。

于 2012-10-19T09:46:11.337 に答える
1

いいえ。

変数にはコンパイル時の値はなく、実行時のみです。プリプロセッサは実行時に動作せず、コンパイル時にのみ動作します。

また、プリプロセッサは言語を解析せず、テキストを操作するだけです。それはあなたの変数宣言について知りません。

于 2012-10-19T09:29:05.740 に答える
0

その値を取得する必要がある場合は、エラーが発生する可能性のあるファイルを前処理してみてください。

 for gcc: gcc -E

次に、それが何に拡張されたかを手動で確認できます。

于 2012-10-19T10:25:47.717 に答える