C 标准的 Rationale 之一: 优先考虑效率,而可移植性尚在其次。
这就要求程序员非常清楚这些规则,如果你要写可移植的代码,就必须清楚哪些写法是不可移植的,应该避免使用。
另一方面,写不可移植的代码有时候也是必要的,比如 Linux 内核代码使用了很多只有 gcc 支持的语法特性以得到最佳的执行效率,在写这些代码的时候就没打算用别的编译器
编译,也就没考虑可移植性的问题。
C 语言与平台和编译器是密不可分的,离开了具体的平台和编译器讨论 C 语言就是只停留在具体的基本语法上了。