1. ホーム
  2. c

[解決済み] static constとconstの違いは何ですか?

2022-03-06 13:55:47

質問

とはどのような違いがあるのでしょうか? static constconst ? 例えば

static const int a=5;
const int i=5;

両者に違いはあるのでしょうか? どのような場合にどちらを使うのでしょうか?

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

違いは連動性です。

// At file scope
static const int a=5;  // internal linkage
const int i=5;         // external linkage

もし i オブジェクトが定義されている翻訳ユニットの外部では使用されないので、そのオブジェクトを static 指定子を使用します。

これにより、コンパイラはさらなる最適化を行うことができる(可能性がある)し、読者はそのオブジェクトが翻訳ユニットの外で使用されていないことを知ることができる。