小智 3
unsafe和deprecated之间是有区别的。atoi()是不安全的,但是 gcc 不会告诉你停止使用它,因为它很危险。使用 gets()会产生不同的结果:) YCMV(您的编译器可能会有所不同)。
一般来说,如果一个函数可能会失败并且无法进行错误检查,则不要使用它。如果某个函数允许您写入内存区域而无法通过大小限制,则不要使用它。
后者仅通过函数原型更容易确定。但是,如果您对自己正在做的事情有一定的了解,您很快就会意识到您无法知道您所得到的是否atoi()真的是用户刚刚在命令行中输入的结果的字符串表示形式。
这个基本原理并不是标准 C 库所独有的。你会遇到很多很多的库代码,其中一些很好。没有任何列表可以取代学到的、防御性的编码习惯。
| 归档时间: |
|
| 查看次数: |
4434 次 |
| 最近记录: |