C언어 컴파일 에러 a label can only be part of a statement and a declaration is not a statement 해결 방법
삽으로 프로그래밍하기/C 2015. 6. 2. 02:31반응형
출처:
http://stackoverflow.com/questions/92396/why-cant-variables-be-declared-in-a-switch-statement
http://www.tipssoft.com/bulletin/board.php?bo_table=FAQ&wr_id=702
switch-case 문에서 변수를 선언했다가 저런 에러를 마주쳐야 했다.
그래서 검색해보니 영어는 읽지 않았지만 코드를 보고 해결할 수 있었다.
나의 허접한 영어 실력으로 해석해보면
레이블(case 5: 같은 콜론이 붙은 것들)은 문장 안의 일부여야 하고
선언은 문장이 아니라고 한다.
그래서 해결 방법은 레이블 밑에 수행할 문장을 중괄호({})로 묶어주어야 한다고 한다.
물론 이게 좋은 설계 방법인지는 모르겠다.
반응형