【发布时间】:2011-02-04 21:02:34
【问题描述】:
我希望 char、short 和 int 类型为 1、2 和 4 字节宽度。我在源代码中包含了一个 stdint.h 标头。这是否保证 int8_t、int16_t 和 int32_t 整数类型将具有指定的宽度?实现这一目标的最佳方法是什么?
【问题讨论】:
-
这是操作系统/架构定义的。对于 32 位机器,它们应该具有该大小。
-
是的,但是我在这里读到很多编译器不支持stdint.h。
-
它有时还取决于编译器(以及所使用的标志)。你正在使用什么操作系统/CPU/编译器?
-
Ubuntu 10.10 / Core 2 Quad / GCC 4.4
-
是 C99 头文件,在较旧的编译器中不可用。最重要的是它直到 2010 版本才包含在 VC++ 中。但是可以从msinttypes.googlecode.com/svn/trunk/stdint.h 获得一个可用的实现,因为它完全是一个头实现,您可以为您可能使用的任何目标/编译器创建自己的实现;编译器的文档将指定所有内置类型的大小。