none
BOOLを明示的に初期化しなかった場合の初期値について RRS feed

  • 質問

  • BOOLのグローバル変数を明示的に初期化しなかった場合、

    初期値にTRUE(1)が設定される可能性はありますでしょうか。

    2020年8月7日 9:42

回答

  • スカラー型の初期化で次のように説明されていますが、常に0になります。これはC言語仕様によるものなので、Visual C++に限定されず、どのコンパイラーであっても共通です。

    • ファイル スコープ レベルで宣言された変数は初期化できます。 外部レベルで明示的に変数を初期化しない場合、既定で 0 に初期化されます。
    • グローバル static 変数を明示的に初期化しない場合は、既定で 0 に初期化され、ポインター型を持つすべてのメンバーに null ポインターが割り当てられます。

    しかし、ミスを防ぐためにも常に明示的に初期化することをお勧めします。

    2020年8月7日 10:13