在下个月开始系统编程之前,我正在研究学习 C 基础知识和语法。在阅读时,我遇到了 C89/99 标准。根据维基百科,
C99 引入了几个新特性,包括内联函数、几个新数据类型(包括 long long int 和表示复数的复杂类型)、可变长度数组、支持可变参数宏(variadic macros of variable arity)和支持单行以 // 开头的注释,如在 BCPL 或 C++ 中。其中许多已经在几个 C 编译器中作为扩展实现。
C99 在很大程度上向后兼容 C90,但在某些方面更严格;特别是,缺少类型说明符的声明不再隐式假定为 int。使用值 199901L 定义标准宏 STDC_VERSION以指示 C99 支持可用。GCC、Sun Studio 和其他编译器现在支持 C99 的许多或全部新特性。
我借了一份 K&R,第 2 版,它使用 C89 标准。对于学生来说,使用 C89 是否会使 K&R 涵盖的某些科目无效,如果是,我应该注意什么?