代码之家  ›  专栏  ›  技术社区  ›  Pramod

GCC中是否有固定大小的整数?

  •  11
  • Pramod  · 技术社区  · 17 年前

    在MSVC++编译器上,可以使用 __int8 , __int16 , __int32 和具有特定大小的整数的类似类型。这对于需要使用底层数据结构(如自定义文件格式、硬件控制数据结构等)的应用程序非常有用。

    在GCC编译器上有类似的等价物吗?

    1 回复  |  直到 10 年前
        1
  •  29
  •   Keith Thompson    12 年前

    ISO标准C从C99标准开始,添加了标准标题 <stdint.h> 这就定义了:

    uint8_t  - unsigned 8 bit
    int8_t   - signed 8 bit
    uint16_t - unsigned 16 bit
    int16_t  - signed 16 bit
    uint32_t - unsigned 32 bit
    int32_t  - signed 32 bit
    uint64_t - unsigned 64 bit
    int64_t  - signed 64 bit
    

    我一直在使用这些类型。

    只有当实现支持具有适当大小和特征的预定义类型时(大多数实现都支持),才会定义这些类型。

    < 还使用表单的名称定义类型 (u)int_leastN_t (具有 至少 指定的宽度)和 (u)int_fastN_t (至少具有指定宽度的“最快”类型);这些类型是必需的。

    如果您使用的是不支持 <标准力h> ,你可以自己滚;一个实现是 Doug Gwyn's "q8"

    推荐文章