gpt4 book ai didi

c - 关于整数内存分配

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

如果分配给整数的内存在任何语言中都有限制(比如 C 中的 2 个字节或 4 个字节或 8 个字节)。使用 32 位或 64 位编译器在 32 位或 64 位机器上编译代码有什么关系。如果这真的是微不足道的问题,请原谅我。但请留下答案。

最佳答案

如果您使用固定大小的整数类型(如 int8_tint16_t),那么您是针对 32 位还是 64 位平台并不重要。

重要的事情之一是指针的大小。以 32 位架构为目标时,所有指针均为 32 位;以 64 位架构为目标时,所有指针均为 64 位。

int 中存储指针值曾经相当普遍,尽管出于可移植性原因,这种做法已变得非常不鼓励,32/64 位情况就是一个很好的例子。如果您将指针存储在 int 中,那么当您截断指针时,您的代码将在 64 位架构上调用未定义的行为。当您去提取指针时,您可能会取消引用它可能会崩溃,或者(更糟的是)继续使用无效数据。

关于c - 关于整数内存分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12813761/

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