您的位置 首页 > 雕刻工具

atoi?使用atoi要小心

大家好,atoi相信很多的网友都不是很明白,包括使用atoi要小心也是一样,不过没有关系,接下来就来为大家分享关于atoi和使用atoi要小心的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

1、用atoi来将字符串转换为int类型。

2、例如atoi("12345")返回整数12345。

3、当期望转换的类型是uint32_t的时候,有些兄弟可能会这么写:(uint32_t)atoi("3000000000"),这在64位机器上运行是正确的,返回整数30亿;但是当迁移到32位机器上时,就出错了,只能返回2147483647,即0x7FFFFFFF。

4、因为atoi内部使用了strtol函数来实现,而strtol返回long,在64位机器上long是8byte长,覆盖到了int和uint32_t的所有值;而在32位机器上,long跟int的取值域是等同的,超过int取值域字符串就只能取到边界值了。

5、用atoi来转换uint32_t类型的时候,代码其实是有风险的,甚至是不正确的,建议用atoll、strtoul、或者sscanf("3000000000","%u",&uint32)这样的方法来转换。

文章分享结束,atoi和使用atoi要小心的答案你都知道了吗?欢迎再次光临本站哦!

本站涵盖的内容、图片、视频等数据,部分未能与原作者取得联系。若涉及版权问题,请及时通知我们并提供相关证明材料,我们将及时予以删除!谢谢大家的理解与支持!

Copyright © 2023