Gra*_*aag 5 c static program-entry-point function
就我目前对'static'关键字的理解而言,它可以防止变量被重新初始化,并且它可以防止变量在函数结束时离开内存.
在C中,我通常在变量不需要是全局变量时使用它,但也不应该在函数调用之间进行更改.(fi微控制器中断)
现在,在STM32的一些C代码中,我看到了以下内容:
int main(void)
{
static char buffer[CONSOLEBUFFERSIZE];
...
Run Code Online (Sandbox Code Playgroud)
对我来说,这没有意义.此变量用于缓冲传入的命令,以便在收到终止字符时处理它们.但是我之前描述的'static'的两个属性并不适用于main函数,因为main()只调用一次而'never'结束.所以我的实际问题是:
这可能是使用我不知道的一些hocus-pocus,还是仅仅是从中断或其他函数中复制代码,程序员是否忘记了或者没有删除静态关键字?