gpt4 book ai didi

c - 在 C 中, block 作用域变量存储在哪里?

转载 作者:行者123 更新时间:2023-12-04 11:48:35 24 4
gpt4 key购买 nike

当我们在 block 中声明一个变量时(if.For...)这些变量存储在哪里?我知道函数变量存储在栈上,动态分配的内容存储在堆上,但是如果我们在 if block 中声明一个变量呢?

最佳答案

block 作用域变量,以及非静态局部变量,具有自动存储持续时间。不过,编译器用它做什么是实现定义的。如果编译器使用堆栈来管理自动变量(大多数编译器都这样做),那么 block 变量最终会出现在堆栈上。然而,编译器将这些变量存储在寄存器中,甚至在编译时优化它们是完全有效的。

关于c - 在 C 中, block 作用域变量存储在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57893889/

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