c++ - 为变量和激活记录保留空间

标签 c++ c memory stack

仅声明变量是否会在程序存储器中为其保留空间?如果没有,请考虑以下代码片段:

void foo(int bar, int baz){
int a;
char b[4];
}

这段代码一旦进入 foo 就会在堆栈中分配一个空间并创建一个激活记录,如下所示:

<小时/>

|巴兹 |

<小时/>

|栏 |

<小时/>

|保存的电脑 |

<小时/>

|一个|

<小时/>

| b |

那么,即使 a 和 b 仅被声明但未定义,该激活记录如何为它们分配空间?

最佳答案

ab 已定义但未使用。由于程序无法判断它们是否已创建,因此编译器可以随意忽略它们。

关于c++ - 为变量和激活记录保留空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12762772/

相关文章:

java - 如何将 JVM 的内存大小增加到 1GB 以上

c++ - 在 QApplication 中使用可视化检漏仪

c# - 为什么我的应用程序在某些系统上返回 'Assertion Failed!' 错误?

c++ - 从 unordered_map 存储和检索后对象发生变化

在两个程序之间用c语言创建管道

c++ - 函数在不应该的时候突然返回

c - 在 C 语言的 ARMv7 中预取

c++ - 仅为 Qt Creator 中的 Release 构建添加预处理器定义

c - 分段故障链表

c++ - 删除指向对象的 C++ 指针