gpt4 book ai didi

c - 是否有充分的理由在每次调用定义它的函数时初始化静态变量?

转载 作者:太空狗 更新时间:2023-10-29 16:40:57 26 4
gpt4 key购买 nike

一位同事正在做一些代码审查,他看到许多静态变量声明类似于以下内容:

void someFunc(){

static int foo;
static int bar;
static int baz;

foo = 0;
bar = 0;
baz = 0;

/*
rest of the function code goes here
*/

}

我们的问题是,编写这段代码的程序员是否对静态变量的概念不清楚,还是有一些聪明的理由故意这样做?

如果有什么不同,环境是嵌入式微 Controller ,编译器是 GCC。

最佳答案

如果它不是嵌入式系统,您可能是正确的:我敢打赌,程序员对静态的概念不清楚,并且一定打算这样写:

static int foo = 0;
static int bar = 0;
static int baz = 0;

但是,在嵌入式系统中,他们可以使用 static 来避免在自动存储(即堆栈)中分配变量。这可以节省几个 CPU 周期,因为静态变量的地址将被“烘焙”到编译方法的二进制代码中。

关于c - 是否有充分的理由在每次调用定义它的函数时初始化静态变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17092424/

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