小编oli*_*fhg的帖子

C中堆栈的变量创建

我想知道是否在堆栈上创建了变量.考虑以下三个函数f,g和h以及变量b:

void f(int a) {
    int b;
    if (a == 0) {
        return;
    }
    // do sth with b;
    return;
}

void g(int a) {
    if (a == 0) {
        return;
    }
    int b;
    // do sth with b;
    return;
}

void h(int a) {
    if (a == 0) {
        return;
    } else {
        int b;
        // do sth with b;
        return;
    }
}
Run Code Online (Sandbox Code Playgroud)
  1. 在哪些情况下将在堆栈上创建?
  2. 编译器优化级别如何影响此行为?
  3. 有一个选项更可取吗?

c stack function

2
推荐指数
1
解决办法
154
查看次数

标签 统计

c ×1

function ×1

stack ×1