![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
文章平均质量分 89
=TD=
这个作者很懒,什么都没留下…
展开
-
内存对齐和位域
一、pragma pack()用法详解1.什么是对齐?为什么要对齐?现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。其他平台可能没有这种情况,但是最常见的是如果不按照适合其平台要求对数据存放进行对齐,会在存取原创 2022-01-10 15:26:03 · 439 阅读 · 2 评论 -
float与double的范围和精度
float和double的区别double是双精度浮点数,内存占8个字节,有效数字16位,表示范围是-1.79E+ 308~-1.79E+308。float是单精度浮点数,内存占4个字节,有效数字8位,表示范围是 -3.40E+38~3.40E+38。两者处理速度不同,CPU处理float的速度比处理double快。double的精度高,double消耗内存是float的两倍。如果不声明,小数默认是double类型,用float时需要进行强转,或者在小数后加上f。float与double的范围原创 2022-01-07 15:09:22 · 17974 阅读 · 4 评论 -
C中的数据类型
前言根据开发需要,用 char 时,数组每个元素的字长与存储单元是1个byte(16进制2位,2进制8位)。而用int时,数组每个元素的字长与存储单元是4个byte(16进制8位,2进制32位)。现存放16进制2位数,例如 0xFF, 0x0A 之类,用 char 型足够了。若改用 int 型当然也可以,只是浪费了存储空间,因数位多,运算,读写也要多费时间。原创 2022-01-07 10:50:24 · 1477 阅读 · 0 评论