
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
C は ANSI C(C89) だと宣言はブロックの先頭にしか書けません。
初期化はそれを使う処理の近くで行った方がコードが
分かりやすいので、そういうコーディングになるのは
しょうがないですね。
現在でも ANSI C(C89) は広く使われているので
そういう例がたくさん見つかるのも無理はありませんが
C99以降ではそういう制限はなくなってます。
変数の初期化を宣言と同時に行うのはとても良い習慣で
極力そうすべきです。
未初期化変数はバグの温床です!
未初期化変数の参照の「可能性」を検出して
コンパイルエラーにする言語もあります(Java等)
ブロックスコープがある言語では、変数が見えてほしい
スコープより内側のブロックに初期化タイミングが
来ることがあるので、無理な時は無理になります。
Javascript は従来ブロックスコープが有りませんでしたが
let などブロックスコープの宣言が導入されたので
変数の初期化を宣言と同時に行えないケースが多少
増えると思います。

No.3
- 回答日時:
C言語も同じですよ。
たまたま見たプログラムはそうなってただけです。
変数宣言が纏めて一箇所に有って、コメントが付いていると見た目が綺麗でわかり易いから、そう言うコーディングを規約にしてる会社も有ります。
が、処理の中間以降では、「あれ、この変数何だっけ?」となって、逆に解らなくなる事も多いです。
なので、do loopとか、処理の纏まり毎に使う変数を、そこで宣言した方が、実務的にはわかり易くなります。
No.2
- 回答日時:
☓C言語は最初に変数の宣言がまとまってあって、
仕様上、変数の宣言は、変数を使用する前だったら(あるいは宣言と同時に代入を)どこでやっても構いません。
「最初に」ってルールはないです。
No.1
- 回答日時:
> C言語は最初に変数の宣言がまとまってあって、
> 代入はその後の方になっています。
宣言したところで初期値を代入することも出来ます。
int count = 2;
といった具合に。
> Javascript は宣言と同時に代入の方もあって
> どちらもあります。
> どちらの方が良いという何かケースはありますでしょうか?
例えば二重ループの内側のループで使用する変数の初期化は変数宣言の所で行うのではなく内側のループに入る所で行うのが明示的で誤りを生むリスクが少なく、作者以外の人が読んだ際にも理解しやすいでしょう。
そういう視点を持ってコーディングをされるとよいと思います。
参考まで。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 変数の初期化について 5 2022/10/02 08:55
- JavaScript 変数宣言と初期値代入の場所について 3 2022/10/31 19:09
- Excel(エクセル) Excel マクロで For 文のインデックスを先に宣言する理由 7 2022/08/27 00:26
- C言語・C++・C# 競技プログラミングに関する質問です。 3 2022/04/03 19:51
- その他(悩み相談・人生相談) 【時効】今だから言える緊急事態宣言下で他人には言えなかった出来事を教えてください。 私は美容院へ平時 3 2023/08/14 17:48
- 政治 気象庁の「梅雨明け宣言」は不要。 14 2023/07/11 13:15
- C言語・C++・C# C言語について コマンドラインで >変数 12.00 (char型) と、小数点付きの値を共用体に渡 1 2022/04/22 16:56
- Visual Basic(VBA) VBAに関する質問です 2 2022/03/30 22:44
- C言語・C++・C# visual studio 2019において、宣言していない変数があるのにエラーなくビルド出来ました 6 2023/03/08 16:32
- 戦争・テロ・デモ 国葬日の前後2週は、緊急事態宣言を出した方が良くないですか? 5 2022/08/24 21:33
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAのプログラムで、DIAG = 1# ...
-
Integer変数をカラにしたいので...
-
構造体のデータを丸ごとコピー...
-
C言語 構造体の中に共用体を定...
-
「#undef」と「#define」の使い...
-
日付チェック関数について
-
整数から16進数への変換 現在c...
-
long型のデータをバイト型の配...
-
構造体の初期化方法について
-
VBAの変数のデータ型を変更する...
-
構造体のポインタにNULLが入らない
-
変数の初期化について
-
異なる構造体のデータのコピー
-
リッチテキストボックスの中身...
-
charとucharの違い
-
値が代入されてない時
-
構造体にする理由・利点・使用例
-
1バイトデータの読み出しについて
-
VBAにてcolorindexを変数に格納...
-
VB6.0の変数、関数の定義位置か...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Integer変数をカラにしたいので...
-
VBAのプログラムで、DIAG = 1# ...
-
「#undef」と「#define」の使い...
-
C++ 構造体の一括初期化 {0}
-
構造体のデータを丸ごとコピー...
-
long型のデータをバイト型の配...
-
VBAにてcolorindexを変数に格納...
-
C言語 構造体の中に共用体を定...
-
VBAの変数のデータ型を変更する...
-
VBAで符号無し整数
-
typedefをプログラム中で解除す...
-
構造体のポインタにNULLが入らない
-
変数の初期化について
-
値が代入されてない時
-
charとucharの違い
-
構造体の初期化方法について
-
整数から16進数への変換 現在c...
-
命名規則 VB 構造体
-
日付チェック関数について
-
1バイトデータの読み出しについて
おすすめ情報