在C语言中,double、long、unsigned、int、char类型数据所占字节数
2015-07-08 14:48
295 查看
和机器字长及编译器有关系:
所以,int,long int,short int的宽度都可能随编译器而异。但有几条铁定的原则(ANSI/ISO制订的):
1 sizeof(short int)<=sizeof(int)
2 sizeof(int)<=sizeof(long int)
3 short int至少应为16位(2字节)
4 long int至少应为32位。
unsigned 是无符号的意思。
例如:
16位编译器
char :1个字节
char*(即指针变量): 2个字节
short int : 2个字节
int: 2个字节
unsigned int : 2个字节
float: 4个字节
double: 8个字节
long: 4个字节
long long: 8个字节
unsigned long: 4个字节
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个字节
所以,int,long int,short int的宽度都可能随编译器而异。但有几条铁定的原则(ANSI/ISO制订的):
1 sizeof(short int)<=sizeof(int)
2 sizeof(int)<=sizeof(long int)
3 short int至少应为16位(2字节)
4 long int至少应为32位。
unsigned 是无符号的意思。
例如:
16位编译器
char :1个字节
char*(即指针变量): 2个字节
short int : 2个字节
int: 2个字节
unsigned int : 2个字节
float: 4个字节
double: 8个字节
long: 4个字节
long long: 8个字节
unsigned long: 4个字节
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#与C/C++的交互
- C++实现二叉树之二叉链表
- VS中CUDA与C++工程项目的配置
- C++高精度性能测试函数
- (C++)函数参数传递中的一级指针和二级指针
- C/C++ 字节序/位域(Bit-fields)之我见
- c与c++关键字的用法总结
- INI文件的读取(C语言:GetPrivateProfileString/GetPrivateProfileInt)
- 黑马-C语言-枚举
- C++继承方式
- c++链表std::list
- eclipse安装C++工程环境----CDT环境————eclipse开发openCV环境准备1
- 单通道和三通道学习理解单通道:
- C语言基础进阶之 MessageBox()用法简介
- 服务端收发登录注册流程
- 怎么将vim修改像vc++自动换行缩进
- malloc函数学习
- C/C++校招笔试面试经典题目总结一
- C++命名空间
- 加速c++输入