[FAQ集] 標準:C/C++為何要有undefined behavior?

看板C_and_CPP (C/C++)作者 (Khoguan Phuann)時間19年前 (2005/09/07 23:25), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串1/1
ptt.cc BBS 站 C_and_CPP 板 FAQ (0.1版) 有關 C 或 C++ 標準規格的問題 Q: C/C++ 一大堆 undefined behavior,處處陷阱,為何不乾脆清楚要求某種 後果就好了? A: (本則解說,主要出自 C FAQ 11.34) C/C++ 會在許多地方放任實作品「為所欲為」,是為了要讓各別編譯器根 據不同平台(硬體、OS等)編譯出最有效率的機器碼來處理合理的、常見 的狀況,但不去針對許多不合理的狀況硬性規定明確的行為,讓所有的程 式去負擔為了檢驗處理這部份所需的額外的碼(由編譯器在背後替我們產 生)。這些多出來的東西會對執行效率有不良影響,而重視效率正是C/C++ 會如此普及的重要原因之一。 一份程式語言的標準可看做是語言使用者(programmer)與編譯器實作者 (編譯器提供者)之間的「契約」。這份契約包含了實作者同意提供而且 使用者也可以放心利用的語言特性;但同時也包含了使用者同意遵守而且 實作者也可以信任使用者將會遵守的規則。得要雙方面信守「承諾」,這 才容易產出能夠正確運作的程式。假如任一方「違約」,那就沒戲唱了。 translated & edited by Khoguan Phuann --------------------------------------- 敬請指正錯誤,或提出更合適的答案。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.227.252.33

61.222.148.171 09/08, , 1F
推推推 K 大太有料了
61.222.148.171 09/08, 1F

218.164.36.200 09/08, , 2F
路過推一下
218.164.36.200 09/08, 2F
※ 編輯: khoguan 來自: 61.227.252.126 (09/08 21:26)
文章代碼(AID): #137mPigW (C_and_CPP)
文章代碼(AID): #137mPigW (C_and_CPP)