[FAQ集] 標準:何謂 implementation-defined?
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)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章