我在C语言方面的经验主要来自The C Programming language的第二版,这是一本非常古老的书。 C自发布以来发生了哪些变化,我应该避免哪些过时或弃用的功能?
答案 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。
答案 1 :(得分:1)
如果您可以获取ISO C99标准的副本,前言包含一个很好的2页自C90以来的主要变化列表。
答案 2 :(得分:1)
没有太大变化。对于大多数实际目的,K& R2中描述的语言仍然是使用的语言。 1999年出现了一个新的C标准,但是并没有像1989年版的标准那样成功和广泛地采用(K& R2也描述了这一标准)。
C99中可能破坏现有程序的最重要变化是:
int
的隐式假设。只需确保始终明确指定函数和变量的类型。这两种情况都是标准日之前的滞留期,长期以来一直被视为不良行为。
要避免的一个功能是(并且一直是)gets()
。