DxLibでSTGを作っているのですが先日エラーに遭遇したのでこちらに記しておきます。
#include <stdio.h>
int main(){
static int i = 0;
switch(i){
case 0:
static int k = 0;
printf("%d",&k);
break;
case 1:
break;
}
}
このように記述すると、
'k' の初期化が 'case' ラベルによって行われませんでした。
'k' の宣言を確認してください。
このようなエラーが返されます。
解決法としては Case:{宣言と処理} という風にブロックで囲めば解決します。
このエラーは変数 k のスコープが case 文内ではなく、 switch 文内になっていることが原因です。もし case 1: に飛び、そこで k を使用した処理がされていた場合、初期化されてないことなるのでコンパイラが自動的にエラーを返します。もしエラーを無視して実行してもこのコードであれば動くはずです。間違いがあれば指摘してください。