この質問はすでに出されていると思いますが、見つかりませんでした。次のような定数の代わりにマクロを使用する場合:
#define A 0
#define B (A+1)
#define C (B+A)
次に、厳密な順序で定義されることが保証されます (A、B、C)。しかし、代わりに const を使用するとどうなるでしょうか?
const int A = 0;
const int B = A + 1;
const int C = A + B;
それが関数スコープ内にある場合は、問題ありません。しかし、グローバル スコープはどうでしょうか。私の知る限り、グローバル変数の定義の順序は保証されていません。そして、constsはどうですか?
これが、マクロの代わりに const を使用するのを止める最後の理由だと思います。
(この特定の問題で C と C++ の間に違いがあるかどうかも興味があります)。
UPD: 質問は次のようにする必要があります: この問題における C と C++ の違い (もしあれば) は何ですか?