32位和64位操作系统各类型sizeof大小

1) 32位操作系统

2) 64位操作系统

3) 常见的类型sizeof大小

空类:
C++编译器强制给这种类插入一个缺省成员,长度为1;
如果有自定义的变量,变量将取代这个缺省成员。

class A
{
};cout<<sizeof(A); // 输出1

只有一个char型

class A
{char c;
};cout<<sizeof(A); // 输出1

有5个char型

class A
{char a,b,c,d,e;
};cout<<sizeof(A); // 输出5

一个char型 + 一个int型:字节对齐

class A
{char c;int a;
};cout<<sizeof(A); // 输出8

2个char型 + 一个int型

class A
{char c,d;int a;
};cout<<sizeof(A); // 输出8

5个char型 + 一个int型

class A
{char c,d,e,f,g;int a;
};cout<<sizeof(A); // 输出12

1个char型 + 1个int型 + 2个char型

class A
{char c;int a;char d,e;
};cout<<sizeof(A); // 输出12

普通函数不占空间

class A
{void B(){ int d; }// 0Byteint C(){};
};cout<<sizeof(A); // 输出1,等同于空类

虚函数 占4个字节:指向虚函数表的指针

class A
{virtual void C(){}
};cout<<sizeof(A); // 输出4

多个虚函数等同于1个虚函数

class A
{virtual void C(){}virtual void D(){}
};cout<<sizeof(A); //输出4

多继承问题中sizeof

class b{};
class c :public b
{virtual void fun() = 0;
};class d :public b ,public c{};
cout<<sizeof(d); // 输出8,字节对齐(b+c)

单继承问题中sizeof

class b{};
class c :public b
{virtual void fun() = 0;
};class d :public c{};
cout<<sizeof(c); //输出4
cout<<sizeof(d); //输出4

静态数据成员 和 成员函数 不占空间

class A
{static int a;static int b(){};
};cout<<sizeof(A); //输出1

const数据变量占空间 和 const成员函数不占空间

class A
{
public:const int b;const int c;virtual void f(){}int d() const{}int e() const{}virtual void g(){}
};cout<<sizeof(A); // 输出12= 4+4+4(多个虚函数算一个)

4) 总结

  • 不占空间的有:普通函数,静态数据成员,静态成员函数;
  • 无论多少个,只相当于一个所占的空间:虚函数;
  • 空类占1个字节;
  • 既有字符型又有整型,要考虑字节对齐;
  • 普通数据成员、const数据成员占空间;静态成员不占空间。

sizeof 32位和64位操作系统的区别相关推荐

  1. 32位和64位操作系统的区别

    简单的说x86代表32位操作系统 x64代表64位操作系统.如果你的CPU是双核以上,那肯定支持64位操作系统了.如果你的电脑内存大于4G,那就要用64位的系统了,因为32位的Windows 7也好, ...

  2. 64位处理器_电脑操作系统的32位和64位有什么区别

    想买个新电脑,不知道买 64 位还是 32 位?买了一套视频剪辑软件,发现电脑根本安装不了?这些到底是为什么? 对于 Windows7 及以上版本,我们能够很明显知道自己电脑操作系统是 64 位还是 ...

  3. 不同计算机用户的区别是什么意思,电脑操作系统的32位和64位分别是什么意思?有什么区别?...

    想买个新电脑,不知道买 64 位还是 32 位?买了一套视频剪辑软件,发现电脑根本安装不了?这些到底是为什么? 对于 Windows7 及以上版本,我们能够很明显知道自己电脑操作系统是 64 位还是 ...

  4. 电脑32位和64位操作系统的区别

    "位",简单地理解就是CPU的寻址空间.在计算机技术的发展史上,位的演变起到了举足轻重的作用.从1971年的4位计算到如今已来临的64位计算时代,这中间经历了漫长的演变过程. 19 ...

  5. guid和mbr格式的区别;32位和64位操作系统的区别。

    1.分区表安全性不同.MBR的意思是"主引导记录",它有自己的启动器,也就是启动代码,一旦启动代码被破坏,系统就没法启动,只有通过修复才能启动系统.而GUID分区表自带备份,在磁盘 ...

  6. C++工作笔记-32位和64位程序的区别

    原文地址: https://blog.csdn.net/nma_123456/article/details/45077345 文章结尾有对此博文的修正和补充! 由于操作系统内存分配的不同,导致软件开 ...

  7. 32位和64位程序的区别

    由于操作系统内存分配的不同,导致软件开发过程中,需要编译不同版本的软件,此处以VS为例. 1.编译程序根据需要选择不同的编译环境: X86和win32位32位程序,X64为64位程序,可以选择不同的编 ...

  8. 32位dll注入到64位程序_你用的32位还是64位?有什么区别呢?

    (给程序员零距离加星标,了解项目开发.) 粉丝福利:小编会从今天留言中抽选3名小伙伴赠送现金红包,感谢大家一直以来的支持!文末见喽!通过前面两篇文章的学习,外甥对电脑的产生了各种好奇,差点把自己电脑拆 ...

  9. 服务器系统都是64位的吗,云服务器32位跟64位的区别吗

    云服务器32位跟64位的区别吗 内容精选 换一换 Windows操作系统与Linux操作系统没有好坏之分,只有适合不适合.请根据业务需求选择Windows或Linux的操作系统.华为云提供了5个版本, ...

  10. 【笔试题】C语言结构体中,不同的数据类型在32位和64位下所占字节的区别

    题目 如下C程序,在64位处理器上运行后sz的值是什么? struct st {int *p;int i;char a; }; int sz=sizeof(struct st); 答案 16 解析 考 ...

最新文章

  1. 这两年的人工智能淘金热 真正赚钱的公司是这几家
  2. 检查Bash Shell脚本中输入参数的存在
  3. MySQL探秘(二):SQL语句执行过程详解
  4. 硬件知识:U盘缩水是怎么回事,如何恢复U盘真实容量?
  5. 二、PHP基础——连接msql数据库进行增删改查操作 实战:新闻管理项目
  6. 实战:隐藏SpringBoot中的私密数据!
  7. 安卓DialogFragment如何使用?
  8. Hive内部表和外部表
  9. 空间如何超越极小而存在
  10. 技术员 Ghost Win 7 Sp1(X86/X64)旗舰加强版201804
  11. i5 10400 + B460M 黑苹果 EFI Big Sur 11.6
  12. 密钥管理——密钥生命周期管理
  13. 简单的把cad怎么转换成pdf格式呢?
  14. 我的世界Java版最大村庄_我的世界19w11a:详解MC全新村庄机制,我已经准备好重开存档了!...
  15. 〖Python接口自动化测试实战篇②〗- 摒弃 ‘捉虫师’ 称号 - 你需要重新认识软件测试
  16. 一位研究生导师的肺腑之言
  17. 8086CPU有哪些寄存器组成?各有什么用途?标志寄存器的各标志位在什么情况下置位?
  18. 用Java实现杨辉三角
  19. Android 平台最新资讯(《Google android 入门开发与实战》pdf完整下载)
  20. 诺基亚 android,诺基亚当年为什么走向没落也没用安卓系统?

热门文章

  1. 【Questasim】报错001 Failed to access library
  2. Android JSON:Gson,FastJson解析库的使用和对比分析(1)
  3. 卡内基梅隆大学计算机科学博士,卡内基梅隆大学有哪些专业处于世界顶尖水平?...
  4. VIM复制粘贴 的快捷键是什么
  5. Android 在后台无法启动Activity
  6. iPhone和iPad适配
  7. Oracle中dual表的用途介绍
  8. 2017、2018年JS面试题记录分享
  9. JPEG文件二进制格式分析
  10. 【算法学习笔记】50.字符串处理 SJTU OJ 1361 丁姐的周末