gpt4 book ai didi

c++ - C/C++ : how to get the number of bytes addressed by one address

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:21:58 25 4
gpt4 key购买 nike

在大多数 x86/x86_64 架构上,一个地址指向一个字节。但是在我使用的微 Controller 上,一个地址指向 2 个字节。

有没有办法知道地址指向的字节数?(比如在宏或其他东西中)

最佳答案

“字节”是指机器上“最小的可寻址单元”;一个地址总是标识一个字节。在某些机器上,一个字节是 8 位;在其他情况下,它可能是 32 位。1

C 标准定义了char成为机器上的最小可寻址单元2;和宏 CHAR_BIT该单元中的位数。它将是<limits.h>中的一个宏/<climits> .


1 C99 6.2.6.1 脚注 40 说:

A byte contains CHAR_BIT bits, and the values of type unsigned char range from 0 to 2CHAR_BIT−1.

2 严格来说不正确,但例如强烈暗示C99 6.2.6.1/4:

Values stored in non-bit-field objects of any other object type consist of n × CHAR_BIT bits, where n is the size of an object of that type, in bytes.

上面写着 sizeof(char) == 1

关于c++ - C/C++ : how to get the number of bytes addressed by one address,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24380997/

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