全部展开

结构的数据类型很多. 我们不会一long而就. 让我们直接看一下相同数据结构的几种书写格式.

格式一:

01.struct tagPhone

02.{

03.     char   A;

04.     int    B;

05.     short  C;

06.}Phone;

格式二:

01.struct tagPhone

02.{

03.     char   A;

04.     short  C;

05.     int    B;

06.}Phone2;

格式3:

01.struct tagPhone3

02.{

03.     char   A;

04.     char   B[2];

05.     char   C[4];

06.}Phone3;

我们都知道char类型占1个字节,int类型占4个字节,short类型占2个字节,long类型占8个字节,double类型占16个字节;

这时,我们可能直接添加1 + 4 + 2 = 7(这需要7个字节)来犯错. 这是错误的.

以下是简要分析:

在计算结构大小时需要考虑内存布局. 该结构按单位存储在内存中,每个单位的大小取决于该结构中最大的基本类型的大小.

对于格式一:

int类型取4的整数倍,因为A占用一个字节后,B无法放置,因此打开一个新单元,然后打开一个新单元放入C,因此被占用的字节数格式之一是: 3 * 4 = 12;

类似地,对于第二种晶格e68a84e8a2ade799bee5baa6e997aee7ad9431333337616465c 计算结构体大小,

A后面有三个字节,足以存储C,因此C在A之后存储,然后打开一个新单元来存储B数据. 因此,格式2占用的内存字节为2 * 4 = 8.

对于格式三:

计算上述结构的大小,sizeof(Phone3)= 1 + 2 + 4 = 7,其大小是结构中字段大小的总和,这也是节省空间最多的方法写.

摘要:

第一种书写方式是空间被严重浪费. sizeof的sizeof计算与期望值不一致,但是保留了每个字段的数据类型. 这也是随便写作的最常见方式,对于大多数人来说,这样写很容易;

第三种写方法,也是最节省空间的写方法,也是使用sizeof查找与预期大小相同的大小c 计算结构体大小,但是所有写方法都使用字节类型,从而丢失了字段的本机数据类型,使用起来很不方便;

在第一和第三种书写方式之间的第二种书写方式在空间上更紧凑,同时保持了结构中字段的数据类型.

只要您了解这些著作的不同之处,就可以适当选择.

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/jisuanjixue/article-214511-1.html

如何c语言看字节大小,如何计算C语言结构占用的字节数相关推荐

  1. c语言中数组大小10000,C语言,怎么存一个很大的数,比方说10000的阶乘

    C语言,如何存一个很大的数,比方说10000的阶乘 我们使用最大的long double 来定义,可是还是撑不下这么大的数,那么该怎么做? long double sum = 1; int i = 1 ...

  2. C语言随机比大小循环,C语言基础知识之(三):循环、随机数

    循环结构: 循环:当满足某个特定条件的情况下,重复执行一段代码. 作用:减少重复冗余的代码,增加代码的可读性,易于维护 重点:各循环语句中循环条件的执行顺序. While循环 Do-While循环 F ...

  3. C语言基础知识入门和C语言入门基础知识大全

    一.C语言基础知识入门 C语言一出现,就以其丰富的功能.强大的表达能力.灵活性.方便性和广泛的应用,在世界范围内迅速普及和普及.C语言不仅高效而且可移植.它可以用来开发应用软件.驱动程序.操作系统等. ...

  4. C语言代码示范与讲解+C语言编程规范及基础语法+编程实战

    上一篇文章:C语言程序设计概述+C语言简介+算法概述 C语言代码示范与讲解+C语言编程规范及基础语法+编程实战 一:代码示范集加讲解 1.C语言第一个代码:打印"This is the fi ...

  5. c语言for循环除法运算,C语言入门这一篇就够了

    c语言入门 C语言一经出现就以其功能丰富.表达能力强.灵活方便.应用面广等特点迅速在全世界普及和推广.C语言不但执行效率高而且可移植性好,可以用来开发应用软件.驱动.操作系统等.C语言也是其它众多高级 ...

  6. 简要描述java语言的特点是什么_java语言的特点是什么

    Java语言本身的面向对象.简单.平台无关性.安全性.多线程等特点java语言的结构与编写方式,与c++语言类似,因此学习Java语言,不仅要了解Java语言特点,同时还要有程序设计基础和面向对象的概 ...

  7. 如何c语言看字节大小,C语言字节大小day5

    计算字节大小 int, float, double 和 char 字节大小 F11运行 注解: 长度就是有几个字符,字节就是这个字符数组共有几个元素. 2.一个字节的长度为8bit,数据的长度由数据的 ...

  8. C语言中如何计算结构体的字节大小

    结构体内存对齐 在计算结构体所占字节的大小时,不要直观地累加结构体内成员的字节大小,实际结构体存放在内存中是有一定的规则的,这里涉及的规则就是内存对齐原则. 声明一个结构体stu struct stu ...

  9. c语言union字节相同大小不同,C语言的struct/union字节对齐

    C语言的一大优势就是对内存空间的控制,当然,一般情况下对于开发人员来说都是透明的.看一个始终困扰初学者的问题:字节对齐! 先看四个重要的基本概念: 1.数据类型自身的对齐值: 对于char型数据,其自 ...

  10. C 语言实例 - 计算 int, float, double 和 char 字节大小

    C 语言实例 - 计算 int, float, double 和 char 字节大小C 语言实例 C 语言实例使用 sizeof 操作符计算int, float, double 和 char四种变量字 ...

最新文章

  1. 天草脱壳视频学习笔记
  2. solaris 10 安装oracle 10g
  3. pytorch 入门Tensor(一)
  4. python --- udp的使用
  5. 机器学习——贝叶斯分类器
  6. JVM虚拟机-Class文件之类索引、父类索引和接口索引集合
  7. echarts实用小技巧,控制字符串长度,限定整数等
  8. C Linux 多线程入门
  9. [转载]世界各个地区WIFI 2.4G及5G信道划分表(附无线通信频率分配表)
  10. 百度云盘上传文件 提示服务器错误,百度网盘上传文件失败怎么办?百度网盘无法上传文件的解决办法...
  11. 使用Zack.EventBus 对rabbitMQ简化操作
  12. LPDDR4的训练(training)和校准(calibration)--ZQ校准(Calibration)
  13. 禅道配置smtp发信没反应
  14. 关于extjs中的cls ≠ class
  15. 如何用计算机扫描图片变成文字,如何把文字图片或者扫描的文件变成word文档?详细步骤...
  16. fedora 16 安装后的基本配置
  17. python爬取qq空间说说
  18. 信息系统项目管理师-九大知识领域必备知识点整理
  19. Predictable Programming on a Precision Timed Architecture
  20. cross-entropy for one-stage detecor

热门文章

  1. 技术人的未来(一)——跳槽
  2. 如何区分前后端 BUG
  3. UI基本控件(一):UIScrollView
  4. 洛谷:P1878 舞蹈课(普及/提高-,stl,堆)
  5. 计算机计算投资回收期公式,投资回收期年限的自动计算(带公式).xlsx
  6. 龙门飞甲的一点小小感想
  7. ASP.NET MVC中的下拉框数据查询
  8. 2022高等代数笔记整理
  9. 网易编程题之地牢逃脱
  10. HDU 6080 度度熊保护村庄(计算几何+floyd)