gpt4 book ai didi

compiler-construction - 如果内存是字节可寻址的,为什么我们有对齐填充?

转载 作者:行者123 更新时间:2023-12-04 00:47:21 26 4
gpt4 key购买 nike

既然我们可以单独寻址内存的每个字节,为什么编译器要格外小心以确保结构及其成员与内存中的 32 位边界对齐?我在这里可能是错的,但在 32 位系统上,从 0x0800 开始获取 4 个字节不是和从 0x0801 开始一样快吗?

最佳答案

在大多数架构上,对自然对齐的数据类型执行读/写会更快。在某些系统上,如果您尝试访问未对齐的某些类型,它会产生异常(即在大多数情况下崩溃)。所以一般来说,你总是希望保持自然对齐,除非你有很好的理由不这样做。

另请参阅相关的 SO 问题和答案:

关于compiler-construction - 如果内存是字节可寻址的,为什么我们有对齐填充?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7345133/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com