C++ 预期的声明说明符或'';在'之前*';代币
我正在尝试在MinGW中构建(这在VS2005中构建得很好),但在以下位置遇到此错误:C++ 预期的声明说明符或'';在'之前*';代币,c++,c,mingw-w64,C++,C,Mingw W64,我正在尝试在MinGW中构建(这在VS2005中构建得很好),但在以下位置遇到此错误: #ifndef int64 #define int64 __int64 /**< Win32 version of 64-bit integers */ #endif // also in class.h #ifndef FADDR #define FADDR typedef int64 (*FUNCTIONADDR)(void*,...); /** the entry point of a modu
#ifndef int64
#define int64 __int64 /**< Win32 version of 64-bit integers */
#endif
// also in class.h
#ifndef FADDR
#define FADDR
typedef int64 (*FUNCTIONADDR)(void*,...); /** the entry point of a module function */
#endif
关于如何处理这个问题有什么建议吗?
谢谢。\uuu int64
来自MSVC,在GCC中不存在。您可以使用stdint.h
中的int64\t
。简单检查:
#ifdef _MSC_VER
typedef __int64 int64;
#else
#include <stdint.h>
typedef int64_t int64;
#endif
\ifdef\u MSC\u VER
typedef__int64int64;
#否则
#包括
typedef int64_t int64;
#恩迪夫
#ifndef int64#定义int64(uu int64/**typedef
而不是\define
。我相信MSVC的最新版本支持
。除非您需要支持旧版本的MSVC,否则最好使用它,因为它是由语言标准定义的。因此,我将typedef int64(*FUNC…)调用更改为typedef_uint64(*FUNC…),它成功了。这种做法有什么问题吗?
#ifdef _MSC_VER
typedef __int64 int64;
#else
#include <stdint.h>
typedef int64_t int64;
#endif