prev up next   top/contents search

comp.lang.c FAQ 列表· 问题 11.34

我对 ANSI 标准如此多未定义的问题感到震惊。标准的全部工作不就是为了标准化这些事情吗?


C 语言一直以来的一个特点是,某些构造的行为方式由特定的编译器或特定的硬件选择实现。这种故意的含糊不清常常允许编译器为常见情况生成更有效的代码,而无需给所有程序增加额外的代码来确保被认为不太合理的那些情况的行为是明确定义的。因此,标准只是对现有实践进行了编码。

编程语言标准可以被认为是语言使用者和编译器实现者之间的协议。该协议的一部分是编译器实现者同意提供的功能,使用者可以假设这些功能可用。然而,其他部分则是由使用者同意遵循的规则,实现者可以假设使用者会遵循这些规则。只要双方都遵守其承诺,程序就有机会正确运行。如果任何一方违背了其承诺,那么就不能保证任何事情都能正常工作。

另请参阅问题 11.3519.42

参考文献:Rationale 第 1.1 节


prev up next   contents search
关于此 FAQ 列表   关于 Eskimo   搜索   反馈   版权

Eskimo North 托管