C++ Builder/Debug_Info
-
Case bypasses initialization of local variableC++ Builder/Debug_Info 2019. 1. 17. 14:03
Error: Case bypasses initialization of local variable switch(조건변수) { case 1: int i=0; ... break; case 2: ... break; } 이와 같은 경우에, 조건변수값이 만약 2인 경우라면 case 1에서 선언하는 int i=0; 라인을 그냥 지나치게 됩니다. 그런데 C++에서 모든 변수는 블럭 내에서 선언되고 스코프를 가지게 되므로, 이 i 변수의 스코프는 switch 문 전체가 되는데, 조건에 의해 case 1 블럭을 지나치게 되므로 변수를 초기화할 수 없게 됩니다. 이 문제는 근본적으로 case 문이 goto 문의 성격을 가지고 있어 점프를 해버리기 때문에 발생하는 것입니다. 이와 같은 경우 세가지 해결책이 있을 수 있습니다...