2011-08-24 58 views
7

在我PCH文件我有以下定義:_int64沒有指定類型

#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; 

當我建立我的應用程序在

typedef signed __int64  int64_t; 
typedef unsigned __int64  uint64_t; 

得到一個錯誤,說_int64沒有指定類型。可能是什麼問題?

回答

8

添加這包括

#include <inttypes.h> 

然後使用uint64_t中或的int64_t。

見下文

#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; 
+0

不需要寫typedef簽名__? – Nitish

+0

之後,如果你使用任何地方int64_t然後編譯器將理解有符號__int64 –

+0

這是行不通的。仍然收到錯誤。 – Nitish

4

它看起來像你正在嘗試使用MSVC特定__int64類型與GCC。這不起作用,請改用long long

+0

其實我建[這](http://code.google.com/p/idoubs/wiki/Building_iDoubs_v2_x)代碼。 – Nitish