有人告诉我,我不应该使用atoi()
,而应该始终使用strtol()
来代替。 atoi()
有什么问题我不应该使用它? strtol()
真的是正确的使用? (这strtol()
返回担心的是什么long
,不是int
像atoi()
呢?)为什么我不应该使用atoi()?
6
A
回答
16
从自己link:
()函数由strtol将归入(),但被保留,因为的atoi它在现有的代码中被广泛使用。 如果数字不在范围内,应该使用strtol(),因为atoi()不需要执行任何错误检查。
或者
atoi
是过时
4
随着atoi
没有发现如果传递的字符串确实是一个编号的方式,因为没有特殊的错误“回归”。它也只处理十进制值(基数10),所以不能处理任意的碱基,如strtol
。它也不能处理大于有符号整数的值(在大多数平台上是32位)。
4
如果字符串会很大并且无法转换,则会导致未定义的行为,因为该字符串的值可能太大,并且可能不在范围内。在这种情况下(号码未知在范围内)应使用strtol()
。
相关问题
- 1. 为什么我不应该使用Unity?
- 2. 为什么我应该使用@properties?
- 3. 我应该为git user.name使用什么?
- 4. 我应该使用什么键为HashMap?
- 5. (为什么)我应该使用混淆?
- 6. 为什么我应该使用org.gradle.api.tasks.Exec?
- 7. atoi()不喜欢我在做什么
- 8. 在Twisted中使用MongoDB。为什么我不应该使用pymongo?
- 9. 为什么不推荐使用assert_template,而应该使用什么?
- 10. 为什么我不应该继承UIButton?
- 11. 为什么或者为什么不应该使用Java 7?
- 12. 为什么我不应该用继承来使用equals?
- 13. 为什么我应该使用vagrant如果我使用virtualenv?
- 14. 什么是Template.myTemplate.helpers(帮助器),为什么我应该使用它?
- 15. 什么是NHibernate,为什么我应该使用它?
- 16. 为什么/我应该在什么时候使用dojo模块?
- 17. 依靠默认编码,我应该使用什么,为什么?
- 18. 什么是反向代理,为什么我应该使用Node.JS?
- 19. 为什么我不应该使用HTML框架?
- 20. 为什么我应该使用Amazon Kinesis而不是SNS-SQS?
- 21. 为什么我不应该使用查找优化?
- 22. 为什么我应该使用XMLLIst而不是简单的XML?
- 23. 为什么我们不应该在角度上使用jquery?
- 24. 为什么我应该使用var而不是类型?
- 25. 为什么我应该使用IHttpActionResult而不是HttpResponseMessage?
- 26. 为什么我应该使用JLabel而不是Image?
- 27. 为什么我应该使用1bit位域而不是bools?
- 28. 为什么我应该使用$ _GET和$ _POST而不是$ _REQUEST?
- 29. 为什么我不应该在JavaScript中使用Alert?
- 30. 为什么我应该使用goog.ui.Checkbox而不是常规输入?
注意:我非常清楚为什么不使用'atoi()'。然而,虽然我看到有关如何使用atoi()解释为什么不使用它的问题,但我一直无法找到这个直接的问题,我认为将问题和答案连接在一起会是有用的正确地作为一对。 –
(另外,我很好奇看到人们想出什么答案,变化可能很有趣。) –
这是不是已经被讨论过了?你有没有环顾过这个网站? –