>>804
ブロック内での変数宣言は使う前ならどこでもよいというのは、
最新のCの規格(通称C99)ではいいのだが、それ以前の規格では認められていなかった。
そして現在C99に対応しているコンパイラはgccくらいしか知られていない。

C++では全然問題なく行えるのだが、ここはCのスレなのでスレ違い。
(ちなみにC++でできるからC99で取り入れられた)