已弃用的C函数列表?

Nee*_*ran 9 c

我是一个C菜鸟,我刚刚发现atoi被弃用而不是strtol等.

我在哪里可以找到已弃用的C函数列表?

小智 3

unsafedeprecated之间是有区别的。atoi()是不安全的,但是 gcc 不会告诉你停止使用它,因为它很危险。使用 gets()会产生不同的结果:) YCMV(您的编译器可能会有所不同)。

一般来说,如果一个函数可能会失败并且无法进行错误检查,则不要使用它。如果某个函数允许您写入内存区域而无法通过大小限制,则不要使用它。

后者仅通过函数原型更容易确定。但是,如果您对自己正在做的事情有一定的了解,您很快就会意识到您无法知道您所得到的是否atoi()真的是用户刚刚在命令行中输入的结果的字符串表示形式。

这个基本原理并不是标准 C 库所独有的。你会遇到很多很多的库代码,其中一些很好。没有任何列表可以取代学到的、防御性的编码习惯。