在Visual C ++中相当于int32_t?

问题描述

| 在Visual C ++中等效于int32_t?     

解决方法

Visual C ++ 2010包含
<cstdint>
,其中包括typedef
std::int32_t
(您还可以包括
<stdint.h>
,它在全局命名空间中具有相同的typedef)。 如果您使用的是Visual C ++的旧版本,则可以使用Boost \的
<cstdint>
实现。     ,我要做的是确保类型像这样后,创建自己的typedef:
#ifdef _MSC_VER
    #if _MSC_VER >= 1600
        #include <cstdint>
    #else
        typedef __int8              int8_t;
        typedef __int16             int16_t;
        typedef __int32             int32_t;
        typedef __int64             int64_t;
        typedef unsigned __int8     uint8_t;
        typedef unsigned __int16    uint16_t;
        typedef unsigned __int32    uint32_t;
        typedef unsigned __int64    uint64_t;
    #endif
#elif __GNUC__ >= 3
    #include <cstdint>
#endif

typedef int8_t      s8;
typedef int16_t     s16;
typedef int32_t     s32;
typedef int64_t     s64;
typedef uint8_t     u8;
typedef uint16_t    u16;
typedef uint32_t    u32;
typedef uint64_t    u64;
    ,如果您具有Visual Studio的ѭ5之前版本,则可以使用
__int32
。     ,
int
。但是,如果您想在2010年之前的VC ++版本(其中引入了ѭ5s头)中继续使用stdint typedef,请考虑使用Boost.Config \的cstdint实现。