//为了和DSP兼容,TSint64和TUint64设置成TSint40和TUint40一样的数
//结果VC中还是认为是32位的,显然不合适
//typedef signed long int TSint64;
//typedef unsigned long int TUint64;
//ANSI C中规定long long才能表示64位
//参见:http://msdn.microsoft.com/en-us/library/s3f49ktz.aspx
//可惜VC++ 6.0 不认识 long long,会报error C2632: 'long' followed by 'long' is illegal
typedef signed long long TSint64;//It's illegal in C90. It's legel in C99.
typedef unsigned long long TUint64;
//typedef LONGLONG TSint64;//VC不认
//typedef ULONGLONG TUint64;
zz from http://www.byvoid.com/blog/c-int64/
在C/C++中,64为整型一直是一种没有确定规范的数据类型。现今主流的编译器中,对64为整型的支持也是标准不一,形态各异。一般来说,64位整型的定义方式有long long和__int64两种(VC还支持_in

本文探讨了C/C++在不同编译器下对64位整型的支持,包括gcc、g++和Microsoft Visual C++ 6.0。long long在gcc/g++中通用,但不适用于VC6.0;__int64是Win32平台的64位整型,不适用于Linux。输出方面,%lld适用于Linux,%I64d适用于Win32,而cout在C++中跨平台,但在VC6.0中不支持64位整型。建议根据目标平台和编译器选择合适的数据类型和输出方式。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



