C++学习笔记2,各基础类型及共用体的长度测试
2014-05-18 10:39
302 查看
一:在Windows下测试
测试源码:
测试结果:
二:在fedora20/linux 64bit下测试
gcc version=4.8.2
可以看出,在Windows 32bit里面,指针是用4个字节来表示的,也就是4*8=32bit;
在linux 64bit里面,指针用8个字节表示,8*8=64,可以看出这里面的规律了吧。那么在16bit里面,是不是用16/8=2来表示的呢?
这个留给你们自己去测试吧。
//测试环境为Windows7 32bit,IDE为VS2010
测试源码:
#include <iostream> using namespace std; //基础类型及共用体测试 union unionOne{//长度为1,无疑问 char c; }; union unionTwo{//长度=4,说明了共用体的长度是所有元素长度中长度最长那个变量的,无疑问 char c;//sizeof(char)=1 int number;//sizeof(int)=4 }; union unionThree{//长度为8,即double的长度,无疑问 char c; int i; double d; }; //结构体 struct structZero//长度为1,无疑问 { char c; }; int main() { //基本类型测试 cout<<"sizeof(int)="<<sizeof(int)<<endl;//4 cout<<"sizeof(float)="<<sizeof(float)<<endl;//4 cout<<"sizeof(double)="<<sizeof(double)<<endl;//8 cout<<"sizeof(short)="<<sizeof(short)<<endl;//2 cout<<"sizeof(char)="<<sizeof(char)<<endl;//1 cout<<"sizeof(bool)="<<sizeof(bool)<<endl; //1 cout<<"sizeof(true)="<<sizeof(true)<<endl<<endl;//1 //可以看出,这里的指针的长度都是4 cout<<"sizeof(int*)="<<sizeof(int*)<<endl;//4 cout<<"sizeof(char*)="<<sizeof(char*)<<endl;//4 cout<<"sizeof(double*)="<<sizeof(double*)<<endl;//4 cout<<"sizeof(double**)="<<sizeof(double**)<<endl<<endl;//4 //可以看出,union的长度即里面长度最大的成员的长度 cout<<"sizeof(unionOne)="<<sizeof(unionOne)<<endl;//1 cout<<"sizeof(unionTwo)="<<sizeof(unionTwo)<<endl;//4 cout<<"sizeof(unionThree)="<<sizeof(unionThree)<<endl<<endl;//8 cin.get(); }
测试结果:
二:在fedora20/linux 64bit下测试
gcc version=4.8.2
可以看出,在Windows 32bit里面,指针是用4个字节来表示的,也就是4*8=32bit;
在linux 64bit里面,指针用8个字节表示,8*8=64,可以看出这里面的规律了吧。那么在16bit里面,是不是用16/8=2来表示的呢?
这个留给你们自己去测试吧。
相关文章推荐
- C++ 学习笔记3,struct长度测试,struct存储时的对齐方式
- C++基础的不能再基础的学习笔记——标准库类型string
- C++基础的不能再基础的学习笔记——类型转换
- C++基础的不能再基础的学习笔记——标准库类型vector(基础)
- 学习笔记(C++中基础数据类型在内存的表现形式)
- C++学习笔记之六 复合类型之共用体
- C\C++ 程序员从零开始学习Android - 个人学习笔记(四) - java基础 - 数据类型、变量、字符串、数组
- C++基础的不能再基础的学习笔记——复合类型
- C++基础教程 学习笔记(一) C++的数据类型和修饰符
- C++学习笔记(一)--基础知识sizeof用法
- javascript学习笔记之Object类型测试
- 《面向对象基础:C++实现》学习笔记之六
- C/C++ 基础知识学习笔记 (不断更新中)
- C++ Primer学习笔记:C++ 常用标准类型小结
- Symbian C++学习笔记连载一:Symbian基础知识
- C++/GDI+ 学习笔记(三)——基础
- C++学习笔记---基本类型
- C++学习笔记-抽象容器类型
- 《面向对象基础:C++实现》学习笔记之七
- 学习笔记-C++搞Mobile基础