Visual C++ 2010/2008 在 C 模式下不接受 `__int64`
Visual C++ 2010/2008 does not accept `__int64` in C mode
我已将问题简化为以下几行:
typedef __int64 int64;
inline int64 qatoll(const char *nptr) { return _atoi64(nptr); }
使用 VC++2008 或 2010 在 C 模式下编译时出现错误:
t.c(2) : error C2054: expected '(' to follow 'inline'
t.c(2) : error C2085: 'qatoll' : not in formal parameter list
t.c(2) : error C2143: syntax error : missing ';' before '{'
在 C++ 模式下,它确实接受函数定义并且只抱怨 _atoi64
。
问题是什么,我该如何解决?
Visual C++ 15编译无误,请问这与C99支持有关吗?
问题不是 __int64
,而是 inline
语法,应该是 _inline
。
我刚刚在一台旧机器上尝试了类似的代码 运行 MSVC 2008 来验证这一点。
我已将问题简化为以下几行:
typedef __int64 int64;
inline int64 qatoll(const char *nptr) { return _atoi64(nptr); }
使用 VC++2008 或 2010 在 C 模式下编译时出现错误:
t.c(2) : error C2054: expected '(' to follow 'inline'
t.c(2) : error C2085: 'qatoll' : not in formal parameter list
t.c(2) : error C2143: syntax error : missing ';' before '{'
在 C++ 模式下,它确实接受函数定义并且只抱怨 _atoi64
。
问题是什么,我该如何解决?
Visual C++ 15编译无误,请问这与C99支持有关吗?
问题不是 __int64
,而是 inline
语法,应该是 _inline
。
我刚刚在一台旧机器上尝试了类似的代码 运行 MSVC 2008 来验证这一点。