c语言之数据类型长度
2016-03-02 11:12
330 查看
c语言之数据类型长度
浏览 219072 次
2011-05-30 21:04提问者采纳
追问:
追答:
(二)数据类型对应字节数
程序运行平台
不同的平台上对不同数据类型分配的字节数是不同的。
个人对平台的理解是CPU+OS+Compiler,是因为:
1、64位机器也可以装32位系统(x64装XP);
2、32位机器上可以有16/32位的编译器(XP上有tc是16位的,其他常见的是32位的);
3、即使是32位的编译器也可以弄出64位的integer来(int64)。
以上这些是基于常见的wintel平台,加上我们可能很少机会接触的其它平台(其它的CPU和OS),所以个人认为所谓平台的概念是三者的组合。
虽然三者的长度可以不一样,但显然相互配合(即长度相等,32位的CPU+32位的OS+32位的Compiler)发挥的能量最大。
理论上来讲 我觉得数据类型的字节数应该是由CPU决定的,但是实际上主要由编译器决定(占多少位由编译器在编译期间说了算)。
常用数据类型对应字节数
可用如sizeof(char),sizeof(char*)等得出
32位编译器:
char :1个字节
char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器)
short int : 2个字节
int: 4个字节
unsigned int : 4个字节
float: 4个字节
double: 8个字节
long: 4个字节
long long: 8个字节
unsigned long: 4个字节
64位编译器:
char :1个字节
char*(即指针变量): 8个字节
short int : 2个字节
int: 4个字节
unsigned int : 4个字节
float: 4个字节
double: 8个字节
long: 8个字节
long long: 8个字节
unsigned long: 8个字节
在C语言中,int类型、long类型、float类型、double类型和char类型数据,在16位和32位计算机中各占几个字节
分享|2011-05-30 20:57青云清|浏览 219072 次
急
2011-05-30 21:04提问者采纳
不要误人子弟啊 搞清楚再贴出来
追问:
那你的答案是啥呢?
追答:
16位 2,4,4,8,1 32位 4,4,4,8,1
(二)数据类型对应字节数
程序运行平台
不同的平台上对不同数据类型分配的字节数是不同的。
个人对平台的理解是CPU+OS+Compiler,是因为:
1、64位机器也可以装32位系统(x64装XP);
2、32位机器上可以有16/32位的编译器(XP上有tc是16位的,其他常见的是32位的);
3、即使是32位的编译器也可以弄出64位的integer来(int64)。
以上这些是基于常见的wintel平台,加上我们可能很少机会接触的其它平台(其它的CPU和OS),所以个人认为所谓平台的概念是三者的组合。
虽然三者的长度可以不一样,但显然相互配合(即长度相等,32位的CPU+32位的OS+32位的Compiler)发挥的能量最大。
理论上来讲 我觉得数据类型的字节数应该是由CPU决定的,但是实际上主要由编译器决定(占多少位由编译器在编译期间说了算)。
常用数据类型对应字节数
可用如sizeof(char),sizeof(char*)等得出
32位编译器:
char :1个字节
char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器)
short int : 2个字节
int: 4个字节
unsigned int : 4个字节
float: 4个字节
double: 8个字节
long: 4个字节
long long: 8个字节
unsigned long: 4个字节
64位编译器:
char :1个字节
char*(即指针变量): 8个字节
short int : 2个字节
int: 4个字节
unsigned int : 4个字节
float: 4个字节
double: 8个字节
long: 8个字节
long long: 8个字节
unsigned long: 8个字节
16位操作系统中,int 占16位;在32位操作系统中,int 占32位。但是现在人们已经习惯了 int 占32位,因此在<a target=_blank target="_blank" class="baidu-highlight " href="https://www.baidu.com/s?wd=64%E4%BD%8D%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1d9PyRzrj6zuADsrAcduHnk0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1nzPHmznHmkr0" rel="nofollow" style="color:rgb(45,100,179); text-decoration:none">64位操作系统</a>中,int 仍为32位。64位整型用 long long 或者 __int64
相关文章推荐
- c++ 访问父类方法
- 小型C/C++项目的makefile编写
- C++文件读写详解(ofstream,ifstream,fstream)
- 浅谈C++数组与指针(一维)
- c++的几种典型数据类型
- 卡马克:用C++进行函数式编程
- c++中cout、cerr、clog的区别
- 在C代码中调用C++接口
- C++基础总结(3)--复杂数据类型
- C++基础总结(3)--复杂数据类型
- C++ const wchar_t*转string
- c++ (P49—P68)
- C/C++从文件开头按行读取内容==并无需新建文件,获取前部分内容
- 自主输入数值求和及平均值(数组的应用)
- [C/C++基础]读写文件
- Cpp--关于windows.h头文件
- 深入理解C++中public、protected及private用法
- C++语言-07-异常处理和信号处理
- c++命名空间
- c/c++将整数转换为字符串