下面的C代碼是UB嗎?我可以訪問垃圾值嗎?如果是這樣,static function
可以正常工作嗎?這是一個未定義的行爲?
const char *foo_name(int x){
switch(x) {
case FOO: return "foo";
case BAA: return "baa";
default: return "unknow";
}
}
根據C標準,如果printf("%s\n",foo_name(FOO));
沒問題,我有點困惑。
爲什麼它是未定義的?您沒有訪問任何垃圾值。 – 2013-05-10 20:19:15
字符串存在,你只是返回指向它的指針。它不是垃圾值......你拼錯吧 – cmd 2013-05-10 20:20:03
@Jack:你有什麼特別的問題?究竟是什麼讓你懷疑你的UB功能? – AnT 2013-05-10 20:51:22