1. ホーム
  2. c

[解決済み] なぜほとんどのC言語開発者はconstの代わりにdefineを使うのですか?重複] [重複

2022-12-07 10:21:51

質問

多くのプログラムでは #define は定数と同じ役割を果たします。 例えば

#define FIELD_WIDTH 10
const int fieldWidth = 10;

私は一般的に、最初の形式が他よりも優先されるのを見ます。これは、基本的にアプリケーションの決定を処理するためにプリプロセッサに依存しているからです。 この伝統には理由があるのでしょうか?

どのように解決するのですか?

これには非常に確かな理由があるのです。 const は何かが一定であることを意味しません。それはただ、変数が読み取り専用であることを意味します。

コンパイラが真の定数を要求する場合(VLA以外の配列のサイズなど)には、変数に const のような変数を使用します。 fieldWidth はどうしても無理です。