有办法做到这一点吗?
#if sizeof(int) == 4
typedef unsigned int Integer32;
#else
typedef unsigned long Integer32;
#endif
或者你只需要#define整数大小并编译不同的标题?
答案 0 :(得分:1)
如果您需要完全尺寸,则可以使用intXX_t
和uintXX_t
变体,其中XX为8,16,32或64.如果您需要的类型是至少某种尺寸,使用int_leastXX_t
和uint_leastXX_t
;如果您需要快速,请使用int_fastXX_t
和uint_fastXX_t
。你可以从<stdint.h>
得到这些,这是C99的结果。如果你没有C99,那就更难了。您不能使用sizeof(int)
,因为预处理器不知道类型。因此,请使用INT_MAX
(来自<limits.h>
等来确定某个特定类型是否足够大,以满足您的需求。