看板 C_and_CPP 關於我們 聯絡資訊
ptt.cc BBS 站 C_and_CPP 板 FAQ (0.1版) 有關 C 或 C++ 標準規格的問題 Q: 討論 C/C++ 時,聽到說某種寫法的後果是 implementation-defined,那是 什麼意思? A: implementation-defined(由實作品自行定義)表示這種寫法的後果由實作 品(主要指的是編譯器)決定,而且它有義務在文件中明文告知。例如: signed char a = 0x1FF; 型別是 int 的整數常數 0x1FF 必須先轉成 signed char 型別才能賦值給 a,但 0x1FF 是 8-bit singed char所容納不下的,在轉型並賦值後, a 的值到底會變成什麼,C/C++標準說是 implementation-defined。實作品也 許會明文定義說這種情形 a 的值是 127,也許會定義說是 -1。 要寫出具有可移植性的程式,就不可以去依賴某種 implementation-defined 的行為,雖然編譯會通過(頂多只是 warning)。 by Khoguan Phuann ----------------------------------- 敬請指正錯誤,或提出更合適的答案。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.227.252.33 ※ 編輯: khoguan 來自: 61.227.252.33 (09/07 23:22)