【发布时间】:2011-12-31 07:43:39
【问题描述】:
我想将数字从 char * 格式转换为 32 位整数 int32_t,但是 strtol() 返回 long。
我不知道我机器上的 long 长度。将来可能是 32 位或 64 位或其他版本。
将字符串转换为 32 位整数 int32_t 的正确且安全的方法是什么?或者将 long 转换为 int32_t。
与 _MAX 和 _MIN 常量比较是唯一且最简单的方法吗?
【问题讨论】:
-
sprintf("%i", ...)有什么问题?它不会自动正确处理 32/64 位系统吗? -
多项式,问题是 %i 不对应 int32_t。总之,正确答案如下。
标签: c linux type-conversion