考虑以下代码:
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] 删除。
我来说两句