字节对齐

标签: 字节对齐
7人阅读 评论(0) 收藏 举报
分类:
  • 一般计算机架构中都会有地址总线和数据总线, 地址总线一般决定了机器可访问内存的大小, 比如8086PC有20条地址总线, 可访问的内存为2的20次方共1048576个字节(1MB); 数据总线则决定了机器单次读写可处理数据的大小, 8086CPU有16条数据总线, 每次可传送给CPU的数据大小最多为16位(2Byte).
  • 通常我们所说的 “计算机是64位的” “32位的系统” 等指的是机器的数据总线的条数.
  • 一般对于32位机器来说, 处理器一次可访问 1Byte(8Bit) 2Byte(16Bit) 4Byte(32Bit).

字节对齐 指的是当处理器访问单个字节时, 对访问的起始地址不作要求; 当访问多个 (n个) 字节时, 要求所访问的起始地址满足 n 的倍数.

下图显示了一个32位机器如何正确的访问内存.
字节对齐

注意:

  • 内存对齐并不是说要访问多少字节就要求起始地址为多少的整数倍, 比如在32位机器上要访问8字节, 由于32位机器一次最多访问4字节, 所以8字节就会拆分为两个4字节分两次访问, 起始地址只要是4的倍数就行.
  • 对于不同的处理器, 当寻址不满足字节对齐要求时所造成的结果也不同. 有的会引发总线异常导致系统崩溃, 有的不会引发异常但是会造成访问性能降低, 有的会读取到错误的数据, 造成数据失真.
  • 关于 如何自定义对象的字节对齐方式?这里
查看评论

嵌入式编程规范 字节对齐

  • 2009年10月08日 08:46
  • 17KB
  • 下载

C语言中的字节对齐详解。

  • 2011年05月24日 15:32
  • 61KB
  • 下载

字节对齐小结

  • 2013年10月14日 14:11
  • 64KB
  • 下载

4字节对齐

2. 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。其他平台可能没有这种情况, 但是最常见的是如果不按照适合其平台的要求对数据存...
  • fuyunliushuizjf
  • fuyunliushuizjf
  • 2014-12-11 10:37:06
  • 866

结构体中的字节对齐问题

为了提高CPU访问内存的效率,可能CPU在读取数据时会一次性读取4字节、或者是2字节、8字节等大小的数据,所以编译器在把数据存放于内存的时候,会自动对齐。1. 字节对齐规则字节对齐有下面几种规律:1....
  • qq_29344757
  • qq_29344757
  • 2017-03-14 15:24:46
  • 368

字节对齐--指定结构体以多少字节对齐

通过使用宏,指定某些结构体或者类的字节对齐方式. #pragma  pack(push)  //让原字节对齐方式入编译器栈 #pragma  pack(1)    //指定新的对齐方式, 1字节对...
  • xiaohuh421
  • xiaohuh421
  • 2012-04-16 10:57:16
  • 2805

32位和64位系统区别及字节对齐

(一)64位系统和32位区别? (二)数据类型对应的字节数 (三)字节对齐
  • lz20120808
  • lz20120808
  • 2015-11-18 19:28:39
  • 1898

Linux下字节对齐准则

一、对齐模数 许多实际的计算机系统对基本类型数据在内存中存放的位置有限制,它们会要求这些数据的首地址的值是某个数k(通常它为4或8)的倍数,这就是所谓的内存对齐,而这个k则被称为该数据类型的对齐模数...
  • chen_chuang_
  • chen_chuang_
  • 2015-03-07 16:07:33
  • 1534

字节对齐的规则总结

一、什么是字节对齐,为什么要对齐?现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特定的内存地址访问,这就...
  • gaoyi221119
  • gaoyi221119
  • 2017-09-15 11:11:44
  • 433

转载_结构体中四字节对齐的详解

转载_结构体中四字节对齐的详解 2013-06-06 12:07 2967人阅读 评论(1) 收藏 举报  分类: C/C++(33)  一 四字节对齐的规则 ...
  • WALLEZhe
  • WALLEZhe
  • 2017-03-15 11:03:21
  • 1151
    个人资料
    持之以恒
    等级:
    访问量: 1016
    积分: 319
    排名: 24万+
    文章存档
    最新评论