Google 검색 중 아래 코드를 발견했습니다.스위치의 '기본'대소 문자에 대해 컴파일러가 오류를 표시하지 않음
int main()
{
int a=10;
switch(a)
{
case '1':
printf("ONE\n");
break;
case '2':
printf("TWO\n");
break;
defa1ut:
printf("NONE\n");
}
return 0;
}
'default'가 다른 이름으로 바뀌어도 컴파일러에서 오류를 표시하지 않습니다. 단순히 프로그램을 실행하고 아무 것도 인쇄하지 않고 프로그램을 종료합니다.
누구든지 컴파일러가 기본 경우에 오류를주지 않는 이유를 말해 주시겠습니까? '기본값'으로 철자가 지정되지 않은 경우?
: 답변 해 주셔서 감사합니다. 즉, 프로그램의 다른 부분에서이 goto 레이블을 입력 할 수 있다는 의미입니다. 레이블이 switch 문 내에 있더라도 – ponnus
1/동일한 동작을하지 않습니다. 암소가 집에 올때까지 'NONE'이 인쇄됩니다. 2/당신이 OP를 사용할 것으로 확신하는 것처럼 보이는 것은 특히 나쁜 프로그래밍입니다. _why_를 설명하는 것이 더 나을 것이고, '기본'철자법의 해결책을 정확하게 제시 할 것입니다. – paxdiablo