易截截图软件、单文件、免安装、纯绿色、仅160KB

C/C++的64位整型 不同编译器间的比较


//为了和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++编译器对64位整型的支持,这五种编译器分别是gcc(mingw32),g++(mingw32),gcc(linux i386),g++(linux i386),Microsoft Visual C++ 6.0。可惜的是,没有一种定义和输出方式组合,同时兼容这五种编译器。为彻底弄清不同编译器对64位整型,我写了程序对它们进行了评测,结果如下表。
变量定义输出方式gcc(mingw32)g++(mingw32)gcc(linux i386)g++(linux i386)MicrosoftVisual C++ 6.0
long long
“%lld”
错误
错误
正确
正确
无法编译
long long
“%I64d”
正确
正确
错误
错误
无法编译
__int64
“lld”
错误
错误
无法编译
无法编译
错误
__int64
“%I64d”
正确
正确
无法编


相关文档:

c输入输出


格式输出:
printf(格式控制, 输出表列);
%d 十进制数  %md m为指定的宽度 若数据位数小于m,则左端补以空格;若大于m,则按实际位数输出
%ld 长整型数据  %mld 指定字段宽度
%o 八进制整数形式  %mo
%x 十六进制整数形式  %mx
%u unsigned型数据,它也可用%o或%x格式输出
%c 一个字符   ......

c/c++类型

1.分类
 内部类型 和用户定义类型
2.
 整形:bool ,字符型,整形
   true  1                   flase 0
   非零 true              & ......

c sharp日志开端

    这是我写的第一个博客日志,在此首先测试一下本个博客系统的功能情况,如分类功能,阅读的简易性,代码显示的方式等。
    so:添加第一个代码程序,如下:
private void Form1_Load(object sender, EventArgs e)
{//使listView控件支持编辑功能
System.Windows ......

C/C++语言void及void指针深层探索

今天有个刚刚毕业的小朋友问我关于void*的一些问题,刚好在网上找到了一篇比较详细说明的文章,转载之......
1.概述
  
  许多初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误。本文将对void关键字的深刻含义进行解说,并详述void及void指针类型的使用方法与技巧。
  2.void的含 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号