看板 C_and_CPP 關於我們 聯絡資訊
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
renderer:推推推 K 大太有料了 61.222.148.171 09/08
drkkimo:路過推一下 218.164.36.200 09/08
※ 編輯: khoguan 來自: 61.227.252.126 (09/08 21:26)