Cor*_*y D 109
#include <stdint.h>
int32_t my_32bit_int;
Run Code Online (Sandbox Code Playgroud)
Bro*_*ses 11
在我看来,Corey的答案对于"最佳"是正确的,但是一个简单的"int"也将在实践中起作用(假设您忽略了具有16位int的系统).此时,如此多的代码依赖于int为32位,系统供应商不会改变它.
(另请参阅为什么在很多64位系统上长32位以及为什么我们有"长期".)
但是,使用int32_t的一个好处是,你不会使这个问题永久化!
brg_types.h如果你没有,你可以追捕Brian Gladman的副本stdint.h.
brg_types.h 将发现平台上各种整数的大小,并为常见大小创建typedef:8,16,32和64位.
您需要包括inttypes.h而不是stdint.h因为stdint.h在某些平台(如Solaris)上不可用,并且inttypes.h将stdint.h在Linux等系统上包含这些内容.如果包含,inttypes.h那么您的代码在Linux和Solaris之间更容易移植.
这个链接解释了我在说什么: 关于inttypes.h的HP链接
此链接有一个表格,显示您不想使用的原因,long或者int您的数据类型中是否存在特定位数的意图.
关于便携式数据类型的IBM链接