作者khoguan (Khoguan Phuann)
看板C_and_CPP
标题[FAQ集] 标准:何谓 implementation-defined?
时间Wed Sep 7 23:19:28 2005
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)