问程序“合法”、“有效”或“符合规范”到底意味着什么?
答简单来说,标准提到了三种符合性:符合规范的程序、严格符合规范的程序和符合规范的实现。
一个符合规范的程序是指一个被符合规范的实现所接受的程序。
一个严格符合规范的程序是指一个不依赖任何实现定义的、未指定或未定义行为,不超出任何实现限制,并且除此之外只使用标准中指定的语言和库功能的程序。
一个符合规范的实现是指一个按照标准要求完成了其应做之事的实现。(标准是这样说的:符合规范的实现“应接受任何严格符合规范的程序”。)符合规范的实现有两种:托管的和独立的。一个托管的实现旨在用于常规应用程序;一个独立的实现旨在用于嵌入式系统等,并且不要求提供所有标准库函数。
不幸的是,与符合规范的程序相关的两个定义都没有人们希望的那么实用。现实中有非常少真正有用且严格符合规范的程序。另一方面,一个仅仅符合规范的程序可以使用它想要的任何编译器特定的扩展。
你可能还会听到“compliant”和“conformant”这两个词,它们基本上是“conforming”的同义词。
参考:ISO Sec.
Rationale Sec. 1.7