2

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

4

3 回答 3

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”的未来,请查看 C1X,它是即将推出的“C”标准。

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

于 2010-08-25T17:31:18.910 回答
1

如果您可以获取 ISO C99 标准的副本,前言包含一个漂亮的 2 页列表,列出了自 C90 以来的主要更改。

于 2010-08-25T17:55:17.033 回答
1

变化不大。对于大多数实际用途,K&R2 中描述的语言仍然是可以使用的语言。1999 年有一个新的 C 标准,但没有像 1989 版本的标准(K&R2 也描述过)那样成功和广泛地采用。

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

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

这两个都是从标准前的日子遗留下来的,长期以来一直被认为是不好的做法。

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

于 2010-08-25T17:56:26.153 回答