gpt4 book ai didi

c++ - c++中变量的栈内存分配

转载 作者:行者123 更新时间:2023-11-30 02:27:38 25 4
gpt4 key购买 nike

C++ 编译器如何组织在函数中初始化的变量来存储它们,以便计算机能够以最快的方式找到它们?

我知道编译器将它们一个接一个地放在堆栈上,但它背后必须有一些逻辑,我在谷歌上搜索了几个小时,但我找不到任何东西。

例如:

int main()
{
float a;
int b;
char c;
double d;
}

由于 c++ 编译器在内存中的存储方式,这应该比下面的占用更多的内存。

当然,使用的确切位是相同的,但在下面的示例中它们应该以更有效的顺序存储。在下一个示例中,编译器会将这些变量存储在内存中的什么位置?据我所知,变量总是存储在一个 block 中,这样 (logical number) % (number of bytes the datatype) = 0

int main()
{
char c;
int b;
float a;
double d;
}

最佳答案

automatic(你所谓的stack)变量在 C++ 标准中没有要求按特定顺序或位置布置(只要 alignment 要求)满意)。

关于c++ - c++中变量的栈内存分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41508543/

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