아래의 C 코드는 UB입니까? 쓰레기 값에 액세스 할 수 있습니까? 그렇다면 static function
이 제대로 작동합니까?이것은 정의되지 않은 동작입니까?
const char *foo_name(int x){
switch(x) {
case FOO: return "foo";
case BAA: return "baa";
default: return "unknow";
}
}
printf("%s\n",foo_name(FOO));
이 C 표준에 따라 정상적으로 표시되면 다소 혼란 스럽습니다.
왜 정의되지 않습니까? 쓰레기 값에 액세스하지 않습니다. –
문자열은 포인터를 반환하고 있습니다. 그 쓰레기 값이 아니라 ... 또한 바 철자가 잘못되었습니다 – cmd
@ 잭 : 구체적으로 당신의 질문은 무엇입니까? UB의 기능을 정확히 의심하게 만드는 것은 무엇입니까? – AnT