博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++ 类类型占用内存大小一题
阅读量:5068 次
发布时间:2019-06-12

本文共 857 字,大约阅读时间需要 2 分钟。

1、问题描述

求解下面程序结果

#include 
using namespace std;class A1 {public: int a; static int b; A1(); ~A1();};class A2 {public: int a; char c; A2(); ~A2();};class A3 {public: float a; char c; A3(); ~A3();};class A4 {public: float a; int b; char c; A4(); ~A4();};class A5 {public: double d; float a; int b; char c; A5(); ~A5();};int main(){ cout << sizeof(A1) << endl; cout << sizeof(A2) << endl; cout << sizeof(A3) << endl; cout << sizeof(A4) << endl; cout << sizeof(A5) << endl; return 0;}

 

2、在linux 下QT及 g++编译后执行结果

$ ./tt4881220

在XP下Qt编译后执行结果

4881224

 

3、析

1)sizeof 只计算栈中分配的大小,  不计算全局数据区中分配的大小。静态变量存放在全局数据区。

2)类类型占用内存大小是所有成员变量大小之和且满足数据对齐规则。

3)linux 下与 windows 下执行结果不同,推测是 linux下以4字节为整数倍进行对齐,xp 下是以最大占用内存的变量为整数倍进行对齐。

转载于:https://www.cnblogs.com/aqing1987/p/4195166.html

你可能感兴趣的文章
超低功耗研发-STM32L151C8T6芯片(一)时钟系统概述
查看>>
软件外包平台
查看>>
pandas入门之DataFrame
查看>>
爬虫github_博客资源
查看>>
爬虫加密解密工具类在线网站
查看>>
爬虫mysql,redis重新连接和关闭连接
查看>>
js案例,鼠标移动到图片,图片显示一张照片点击图片能来回切换
查看>>
js点击变色,在点击还原
查看>>
input点击后placeholder中的提示消息消失,而不是输入文字的时候消失
查看>>
js 点击两张图片来回切换
查看>>
wpf -----Expander自定义样式
查看>>
C# 使用 MsieJavaScriptEngine 引擎运行JavaScript
查看>>
每日踩坑 2019-07-30 H5 使用 iframe 底部有白边
查看>>
MVC Areas的使用
查看>>
每日踩坑 2019-08-23 button 元素点击后刷新页面
查看>>
Silverlight之美
查看>>
JavaScript 固定DIV高度,超出部分自动添加滚动条
查看>>
Tire树模板-于是他错误的点名开始了
查看>>
C#自己写的第一个小程序,庆祝一下
查看>>
在公司中使用springboot技术的经验
查看>>