1. ホーム
  2. c++

[解決済み】static constと#defineの比較

2022-04-03 11:46:10

質問

を使用した方が良いのでしょうか? static const バーよりも #define プリプロセッサー?それとも文脈に依存するのでしょうか?

各方式のメリット/デメリットを教えてください。

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

個人的にはプリプロセッサーが大嫌いなので、いつも const .

の主な利点は #define というのも、これは単にテキストをリテラル値に置き換えるだけなので、プログラム内にメモリを確保する必要がないからです。また、型を持たないので、どんな整数値にも警告を出さずに使えるという利点もある。

の利点は? const は、スコープを設定することができ、オブジェクトへのポインタを渡す必要がある場合に使用することができます。

何が言いたいのかよくわからないのですが、" static の部分ですが。グローバルに宣言するのであれば、私なら static . 例えば

namespace {
   unsigned const seconds_per_minute = 60;
};

int main (int argc; char *argv[]) {
...
}