Что эквивалентно int32_t в Visual C ++? - PullRequest
18 голосов
/ 14 апреля 2011

Что эквивалентно int32_t в Visual C ++?

Ответы [ 4 ]

37 голосов
/ 14 апреля 2011

Visual C ++ 2010 включает <cstdint>, который включает typedef std::int32_t (вы также можете включить <stdint.h>, который имеет тот же typedef в глобальном пространстве имен).

Если вы используете более старую версиюVisual C ++, вы можете использовать Boost's <cstdint> реализация .

8 голосов
/ 31 января 2013

Я делаю свои собственные определения типов, убедившись, что типы существуют следующим образом:

#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;
7 голосов
/ 14 апреля 2011

Если у вас есть версия Visual Studio до cstdint, вы можете использовать __int32.

1 голос
/ 14 апреля 2011

int. Но если вы хотите продолжить использование stdint typedefs в версиях VC ++ до 2010 года (в котором был введен заголовок cstdint), рассмотрите возможность использования Boost . Config 's реализация cstdint .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...