静态是什么意思?

谢夫

考虑以下代码:

static uint8_t tab[] = {1, 2};

void foo() {
    uint8_t tab2[] = {1, 2};
}

我这里有两个数组,一个是带static关键字的,第二个是在函数内。我应该如何正确命名它们中的每一个?因为那两个是静态的。我知道tab数组将永远存在与tab2仅在执行函数时存在的区别foo()如果tab2是在函数退出后死亡的静态数组,它不应该被称为另一个吗?根据编程理论,这些数组的专有名称是什么?

另一个例子:

void bar() {
  static uint8_t tab[] = { 1, 2 };
}

根据此类变量的编程理论,专有名称是什么?“静态的静态”数组?

开发者太阳能

static关键字是指静态存储持续时间和内部连接(除非在方框范围,在那里它意味着静态存储持续时间和没有键作为块范围的东西都从来没有连接)。

tab2 的不是静态的,它具有自动存储期限且没有链接。(甚至还有一个关键字auto,它是隐含的,但通常不使用。不要将其与 C++ 混淆,C++ 已“回收”该关键字以获得完全不同的含义。)

什么标识你给你的变量-例如,tab或者tab2-是你。但是它们由语言很好地定义的:

  • 您的第一个tab两个静态全局数组uint8_t它具有静态存储持续时间和内部链接。
  • tab2是一个包含两个块作用域数组uint8_t它具有自动存储时长,联动。
  • 您的第二个tab两个静态块范围数组uint8_t它具有静态存储持续时间且没有链接。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章