Xcode「Variable ‘x’ is uninitialized when used within its own initialization」


Clangコンパイラ利用時に出逢ったありがたい警告文。

Variable 'x' is uninitialized when used within its own initialization

未初期化の変数を自身に再代入しているため警告が発生している。

int i = i; // Variable 'i' is uninitialized when used within its own initialization

おそらくこの手のコードを書いてしまった場合の危険性を考慮し、わざわざ丁寧に警告してくれているのだろう。

int i = 3;
{
  int i = i; // 右のiは「int i = 3;」のiではない
}

Swiftの場合は警告ではなくコンパイルエラーとなる。

Variable used within its own initial value
var i:Int = i // Variable used within its own initial value

俺「C言語さんユルいっすね」
Clang「控えめでおしとやかの間違いですよ?」
ANSI「じーーっ」

広告