본문 바로가기

Computer/Language - C/C++

case 문에서는 변수 선언이 안된다?!

DB 숙제를 하다 보니 내가 보기에는 전혀 애러가 없는 부분이었는데 컴파일러가 애러를 띄우는 부분이 있었다.

case 'c' : 
int a=...;
char *name = ...;
break;

전혀 이상할 것이 없는데?.....
모르는 것이 있을 땐, 도와줘요 구느님!

구느님 가라사대,
case 문에서는 local variable 의 범위가 지정되지 않았기 때문에 
저렇게 변수를 선언하면 오류가 난다.
괄호를 넣거라!

case 'c' : {
int a=...;
char *name = ...;
break;
}
이렇게 코드를 고치니 잘 돌아간다!

결론 : case 문에서 변수를 선언할 땐 괄호가 필요하다.