看板 C_and_CPP 關於我們 聯絡資訊
ptt.cc BBS 站 C_and_CPP 板 FAQ (0.1版) 有關 C 或 C++ 標準規格的問題 Q: 討論 C/C++ 時,聽到說某種寫法的後果是 undefined behavior,何謂也? A: undefined behavior(未定義行為),這個可嚴重了。就是標準完全不做要 求,實作品可以想怎樣就怎樣,可能可以執行出某種可用的結果,但也大可 以讓我們的程式一執行就當掉,或是把機器燒掉,把程式所控制的洲際導彈 發射出去……。例如 int *pi = 0; int i = *pi; 此例提取(dereference)一個空指標(null pointer),標準明文說其結果是 undefined behavior。 因為許多 undefined behavior 的寫法,編譯器都不會發出任何警告訊息, 而讓我們的程式看似完美的通過編譯,甚至一時間也執行出我們預期的結果, 所以許多人都輕忽了 undefined behavior 的嚴重性。。 要寫出一個正確的程式,絕不可以去碰會導致 undefined behavior 的寫法。 by Khoguan Phuann ----------------------------------- 敬請指正錯誤,或提出更合適的答案。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.227.252.33