某些构造随编译器和硬件的实现而变化, 这一直是C语言的一个特点。
这种有意的不严格规定可以让编译器生成效率更高的代码, 而不必让所有程序为了不合理的情况承担额外的负担。
因此, 标准只是把现存的实践整理成文。
编程语言标准可以看作是语言使用者和编译器实现者之间的协议。
协议的一部分是编译器实现者同意提供, 用户可以使用的功能。
而其它部分则包括用户同意遵守, 编译器实现者认为会被最受的规则。
只要双方都恪守自己的保证, 程序就可以正确运行。
如果任何一方违背它的诺言, 则结果肯定失败。