1

トップレベルのヘッダーファイルで行うのではなく、Makefileたとえば経由でマクロを追加すると、動作が異なるサードパーティのコードがあります(ドキュメントが示すように、すべてのファイルに含まれています)。-DMacro#define MACRO

さまざまな方法で定義することに違いがあるかどうかをグーグルで調べましたが、 -D MACRO と #define MACRO の優先順位を除いて、あまり思いつきませんでした。

デバッグを開始して問題を特定する前に、make のドキュメントや C 標準について何か不足していないかどうか疑問に思っています。

回答ありがとうございます。

4

1 に答える 1

2

通常はまったく同じですがmake、ISO 規格もそれについて何も述べていません。それはコンパイラ自体次第であり、オプションがない場合もあり-Dます。

に、必要なオプションを指定しmakeてコマンド ( など) を実行するだけです。ISO では、コンパイラの実行方法については何もgcc指定されていません。コンパイラ (およびコンパイラが作成するもの) がどのように動作するかだけです。

の場合gcc、プリプロセッサ オプションはここにありますので、同じように見え#defineます。

于 2013-05-03T10:46:30.717 に答える