エラーメッセージをちゃんと貼れ。
仕様と言うか言語的にそうなってる。

switch (式)
{
 ラベル1:
 ラベル2:
 ラベル3:
}

ラベルからラベルまでの間はこのままだとブロックになっていない。
だからC99より前だとswitch文で変数を宣言したかったら

switch (式)
{
 int x;
 ラベル1:
  なんちゃからんちゃら
}

のようにラベル1の前で変数を宣言しないとエラーになる。