各变量字节数
来源:互联网 发布:电脑技术员必备软件 编辑:程序博客网 时间:2024/06/08 08:00
Win64, 也就是X64编译配置下:
char 1字节;
short 2字节;
int 4字节;
long 4字节;
long long 8字节;
float 4字节;
double 8字节;
long double 8字节;
wchar_t 2字节;
bool 1字节;
(指针都是8字节)
char* 8字节;
bool* 8字节;
short* 8字节;
int* 8字节;
long* 8字节;
long long* 8字节;
float* 8字节;
double* 8字节;
long double* 8字节;
wchar_t* 8字节;
下面是Win32, 也就是X86编译配置下变量所占字节数
char 1字节;
short 2字节;
int 4字节;
long 4字节;
longlong 8字节;
float 4字节;
double 8字节;
long double 8字节;
wchar_t 2字节;
bool 1字节;
(指针都是4字节)
char* 4字节;
bool* 4字节;
short* 4字节;
int* 4字节;
long* 4字节;
long long* 4字节;
float* 4字节;
double* 4字节;
long double* 4字节;
wchar_t* 4字节;
其他类型:
enum类型声明不占内存。
eg. enum Color { Red, Black }; 不占内存。
enum变量定义占int型内存。Win32下是占4B。 eg. Color clr; 占sizeof(int)
struct的成员对齐问题:
对于结构体,编译器会自动进行成员对齐以提高运算效率。缺省情况下,编译器会为结构体的每个成员按其自然对界(按结构体中的成员中size最大的成员对齐)条件分配空间,每个成员按照他们被声明的顺序在内存中顺序存储。
联合体(union)的结构体空间要足够大,要等于最长的一个结构体 变量的空间,但是这个最长的空间要满足以下条件:
1.要大于等于最长一个结构变量的空间
2.并且要能够整除其他结构变量的数据长度(长度要是元类型长度的最小公倍数)。
总结:经上述比较,一般变量在X86和X64系统下长度没什么区别,区别在于指针的 寻址范围从32位增加到了64位。如果考虑对64位系统下程序的兼容性,指针是唯一需要注意的地方。从32位系统过渡到64位系统不同于从16位系统过渡 到32位系统,因为DOS系统下int只有2个字节,而Windows系统下int是4个字节,过渡到64位系统后int的字节数没有增加。如果使用 Windows系统编程,支持64位需要Visual Studio 2005/2008均可,而早期版本是不支持64位平台的。
- 各变量字节数
- C# 变量占用字节数
- 变量占的字节数
- 32位和64位各变量字节数
- 不同类型变量的字节数说明
- javascript获得变量的字节数
- 变量占据的字节数的问题。
- C语言整型变量所占内存字节数
- 变量各类型所占的字节数
- 不使用sizeof,获取变量所占用的字节数
- linux学习之c语言变量所占字节数
- java变量所占字节数及取值范围
- 内存的构造和变量占用的字节数
- 字节数
- 字符数,字节数
- 字符数、字节数
- 各数据类型所占字节数
- C语言中显示变量所占字节数;字节、字、字长;原码、反码、补码
- 小C实例也有大梦想——巧用强制类型转换
- java 中类初始化,构造方法,静态成员变量,静态块的加载顺序
- 在win10,64位下安装mysql-5.7.17-winx64解压版
- SpringMVC数据校验、文件上传
- 记一次电话面试
- 各变量字节数
- linux内核--定时器API
- 深度学习流行网络与数据集
- 加载内核出现的错误
- 网球“鹰眼”系统
- java中的并发工具类
- JavaScript性能优化小知识总结
- Mac下su命令提示su:Sorry的解决办法
- CF