10.8 实现定义、未明确和无定义行为的区别

简单地说:

实现定义意味着实现必须选择某种行为并提供文档。

未明确意味着实现必须选择某种行为但不必提供文档。

未定义意味着任何事情都可能发生。

标准在任何情况下都不强加需求; 前两种情况下, 它有时建议一组可能的行为(也可能要求从中选择一种)。

注意,既然标准对无定义行为没有强制要求, 编译器就绝对可以做任何事情。

特别地, 对程序其它部分的正常运行没有任何保证;

参见问题3.2, 有一个相对简单的例子。

如果你对书写可移植代码有兴趣, 你可以忽略它们的区别, 因为通常你都希望避免依赖三种行为中的任何一种。

参见问题3.8 和11.34。

第四种不那么严格定义的行为是“场景特定” (locale-specific)。

永不止步步 发表于01-16 16:13 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67417个|学分:363741个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号