10.9为什么ANSI标准有很多没有定义的东西

某些构造随编译器和硬件的实现而变化, 这一直是C 语言的一个特点。这种 有意的不严格规定可以让编译器生成效率更高的代码, 而不必让所有程序为了不 合理的情况承担额外的负担。因此, 标准只是把现存的实践整理成文。

编程语言标准可以看作是语言使用者和编译器实现者之间的协议。协议的一 部分是编译器实现者同意提供, 用户可以使用的功能。而其它部分则包括用户同 意遵守, 编译器实现者认为会被最受的规则。只要双方都恪守自己的保证, 程序就 可以正确运行。如果任何一方违背它的诺言, 则结果肯定失败。