c语言 - "defined"和"well-defined"之间有什么区别(如果有的话)?



最近我看到了这样的评论:

一般来说,它不是未定义的,但是也不是完全定义好的.

这让我有点困惑,因为如果行为不是未定义的,那么它就是定义的。因此,定义的行为定义良好的行为之间的区别(如果有的话)是什么?

注意,该标准没有术语定义良好的行为。然而,它有术语定义良好的语义。所以,问题可能是类似的:定义的语义定义良好的语义之间有什么区别(如果有的话)?

一般来说:定义的定义的

有什么区别(如果有的话)?问题的原因:更好地理解标准。

定义良好的是我们通常所说的既不包含未定义、未指定或实现定义行为的代码。第4章对严格遵从程序的定义可能会有所帮助:

严格符合标准的程序只能使用本标准中指定的语言和库的特性。它不应产生依赖于任何未指定、未定义或实现定义的行为的输出,并且不应超过任何最小实现限制。

满足上述条件的任何C代码片段都可以被非正式地称为定义良好的,即由ISO C语言标准定义并可移植的。与实现定义的相反,意味着文档化的编译器特定行为。

相关内容

  • 没有找到相关文章

最新更新