自“C程序设计语言”以来发生了什么变化

时间:2010-08-25 17:12:48

标签: c deprecated kr-c

我在C语言方面的经验主要来自The C Programming language的第二版,这是一本非常古老的书。 C自发布以来发生了哪些变化,我应该避免哪些过时或弃用的功能?

3 个答案:

答案 0 :(得分:4)

您还可以查看自那以后出现的'C'规范(如C99)。这些规范将指出它们相对于先前标准添加/删除/更改的内容。

http://en.wikipedia.org/wiki/C_%28programming_language%29

http://en.wikipedia.org/wiki/C99

http://en.wikipedia.org/wiki/C89_%28C_version%29

如果你想看看'C'的未来发展方向,请看看即将推出的'C'标准C1X。

http://en.wikipedia.org/wiki/C1x

答案 1 :(得分:1)

如果您可以获取ISO C99标准的副本,前言包含一个很好的2页自C90以来的主要变化列表。

答案 2 :(得分:1)

没有太大变化。对于大多数实际目的,K& R2中描述的语言仍然是使用的语言。 1999年出现了一个新的C标准,但是并没有像1989年版的标准那样成功和广泛地采用(K& R2也描述了这一标准)。

C99中可能破坏现有程序的最重要变化是:

  • 已删除声明中类型int的隐式假设。只需确保始终明确指定函数和变量的类型。
  • 不推荐在没有事先声明的情况下调用函数。只需确保在使用前声明所有功能,最好使用原型。

这两种情况都是标准日之前的滞留期,长期以来一直被视为不良行为。

要避免的一个功能是(并且一直是)gets()