c/c++下 long long与__int64不同编译环境的比较

本文探讨了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位整型。建议根据目标平台和编译器选择合适的数据类型和输出方式。
摘要由CSDN通过智能技术生成

//为了和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还支持_int64),而输出到标准输出方式有printf(“%lld”,a),printf(“%I64d”,a),和cout << a三种方式。

本文讨论的是五种常用的C/C+&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值