C++ に適用される例外をスローするという非常に優れた点は別として、C でも、すべての変数を初期化することをお勧めします。コンパイラは、必要がないと判断できる場合、ほぼ常に初期化を最適化します。
そうしないとどうなるかの例を次に示します。
SomeType* ptr;
ptr = SomeMethod(some, params);
ptr
ご覧のとおり、有効な値がなくても問題なく動作します。
ここで、もう少しコードを追加することをお勧めします。
SomeType* ptr;
int x = someotherfunction;
if (x > 90)
{
ptr = SomeMethod(some, params);
}
突然、ptr
ランダムで意味のないコンテンツが表示されます。NULL の可能性もありますが、それ以外の可能性が非常に高くなります。はい、私たちの変更が何か他のものに影響を与えていないかどうかを確認することを忘れないでください. 「おっと、それは考えていませんでした」。
「someotherfunction」を追加した新しいコードが 20 行または 30 行であると想像してみてください。問題がはっきりとわかります。