_int64未命名类型

时间:2021-12-22 12:10:01

In my pch file I have the following definitions:

在我的pch文件中,我有以下定义:

#if (_MSC_VER < 1300)
   typedef signed char       int8_t;
   typedef signed short      int16_t;
   typedef signed int        int32_t;
   typedef unsigned char     uint8_t;
   typedef unsigned short    uint16_t;
   typedef unsigned int      uint32_t;
#else
   typedef signed __int8     int8_t;
   typedef signed __int16    int16_t;
   typedef signed __int32    int32_t;
   typedef unsigned __int8   uint8_t;
   typedef unsigned __int16  uint16_t;
   typedef unsigned __int32  uint32_t;
#endif
typedef signed __int64       int64_t;
typedef unsigned __int64     uint64_t;  

When I build my application I get an error at

当我构建我的应用程序时,我得到一个错误

typedef signed __int64       int64_t;
typedef unsigned __int64     uint64_t; 

which says that _int64 does not name a type. What might be the problem?

这表示_int64没有命名类型。可能是什么问题?

2 个解决方案

#1


8  

Add this include

添加此包含

#include <inttypes.h>

Then use uint64_t or int64_t.

然后使用uint64_t或int64_t。

see below

#include <inttypes.h>


#if (_MSC_VER < 1300)
   typedef signed char       int8_t;
   typedef signed short      int16_t;
   typedef signed int        int32_t;
   typedef unsigned char     uint8_t;
   typedef unsigned short    uint16_t;
   typedef unsigned int      uint32_t;
#else
   typedef signed __int8     int8_t;
   typedef signed __int16    int16_t;
   typedef signed __int32    int32_t;
   typedef unsigned __int8   uint8_t;
   typedef unsigned __int16  uint16_t;
   typedef unsigned __int32  uint32_t;
#endif
typedef signed __int64       int64_t;
typedef unsigned __int64     uint64_t;  

#2


4  

It looks like you you are trying to use MSVC specific __int64 type with GCC. That does not work, use long long instead.

看起来你正试图在GCC中使用MSVC特定的__int64类型。这不起作用,反而使用很长时间。

#1


8  

Add this include

添加此包含

#include <inttypes.h>

Then use uint64_t or int64_t.

然后使用uint64_t或int64_t。

see below

#include <inttypes.h>


#if (_MSC_VER < 1300)
   typedef signed char       int8_t;
   typedef signed short      int16_t;
   typedef signed int        int32_t;
   typedef unsigned char     uint8_t;
   typedef unsigned short    uint16_t;
   typedef unsigned int      uint32_t;
#else
   typedef signed __int8     int8_t;
   typedef signed __int16    int16_t;
   typedef signed __int32    int32_t;
   typedef unsigned __int8   uint8_t;
   typedef unsigned __int16  uint16_t;
   typedef unsigned __int32  uint32_t;
#endif
typedef signed __int64       int64_t;
typedef unsigned __int64     uint64_t;  

#2


4  

It looks like you you are trying to use MSVC specific __int64 type with GCC. That does not work, use long long instead.

看起来你正试图在GCC中使用MSVC特定的__int64类型。这不起作用,反而使用很长时间。