typedef signed long long Int64; 这样的声明为什么在windows VC下不能通过?
来源: 互联网 发布时间:2016-09-09
本文导语: typedef signed long long Int64; UNIX下上面的声明可以编译,但是在VC6下编译提示出错: error C2632: 'long' followed by 'long' is illegal 怎么回事? 如何因此进行Unix和windows平台的统一? | "long long"...
typedef signed long long Int64;
UNIX下上面的声明可以编译,但是在VC6下编译提示出错:
error C2632: 'long' followed by 'long' is illegal
怎么回事?
如何因此进行Unix和windows平台的统一?
UNIX下上面的声明可以编译,但是在VC6下编译提示出错:
error C2632: 'long' followed by 'long' is illegal
怎么回事?
如何因此进行Unix和windows平台的统一?
|
"long long"是c99的标准,vc6是在此之前的,不支持。
vc6里面的64位整型是 __int64
所以这行代码在vc6里要改成 typedef __int64 Int64;
我用vs2005试了一下,用"long long"可以编译通过。
所以这里不是Unix和windows平台的问题,而是vc6过时的问题。
vc6里面的64位整型是 __int64
所以这行代码在vc6里要改成 typedef __int64 Int64;
我用vs2005试了一下,用"long long"可以编译通过。
所以这里不是Unix和windows平台的问题,而是vc6过时的问题。
|
我刚才找到这么一篇文章,楼主有兴趣可以看看。
不过我觉得这应该也是很久以前写的了,所以不必太深究。
现在的64位编译器里面的long就是64位了。
http://blog.csdn.net/lychee007/archive/2010/04/04/5449237.aspx
不过我觉得这应该也是很久以前写的了,所以不必太深究。
现在的64位编译器里面的long就是64位了。
http://blog.csdn.net/lychee007/archive/2010/04/04/5449237.aspx