gpt4 book ai didi

c - 字节寻址存储器和字寻址

转载 作者:太空宇宙 更新时间:2023-11-04 01:37:31 24 4
gpt4 key购买 nike

字寻址内存和字节寻址内存是什么意思?

最佳答案

这通常用于底层硬件的上下文中。现在大多数系统都有字节寻址内存。也就是说,内存中的每个字节都可以单独寻址和取出。

有些系统有字地址存储器,指针寄存器包含单个字的地址。此外,每当提取内存时,都会提取整个单词。如果您需要一个特定的字节,编译器将获取一个字,然后安排从中获取所需的字节。

请注意,在这样的系统上,对指针使用 reinterpret_cast 是极其危险的,因为实现可能(为了效率)将指向字对齐的指针作为字指针,将指向字节对齐的指针作为字节指针。所以如果你的内存看起来有点像这样:

 word X  : aa ab ac ed
word X+1: ba bb bc bd

指向单词 X 的指针将包含 X,但指向 aa 的字节指针将包含 X*4

reinterpret_cast<word *>(&aa)会给你一个 X*4 的字指针,这将是令人尴尬的错误。

在字节寻址的机器上,字和字节指针都将包含 X*4,因此在两者之间重新解释转换是“安全的”(也就是说未定义的行为和混淆)。

关于c - 字节寻址存储器和字寻址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11878093/

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