变量p
的生命周期是多少,如果它被声明为extern int p;
它是静态的,动态的,自动的还是没有生命周期,因为没有链接?
答案 0 :(得分:8)
谈论fab -R ip my_task
声明引入的名称的生命周期没有多大意义 - 存储持续时间是对象的属性,而不是名称 >
另一方面,extern
变量声明只能引用具有静态存储持续时间的全局变量。
答案 1 :(得分:2)
还是没有生命,因为没有联系?
关键字SELECT CASE WHEN INCIDENT_RK = 52080
THEN NULL
ELSE CASE_RK
END AS CASE_RK
FROM [casemgmt4].[ecmdb4].[INCIDENT_LIVE]
表示仅声明变量,即没有为其分配存储[1]。
关键字extern
与变量的生命周期无关。也就是说,变量的生命周期/范围仅取决于它在代码中的确切位置。
注意
[1]当extern
与
extern
忽略关键字extern int i=5;
,通常的范围规则适用于变量
[2]请检查我的其他[ answer ]。
Interesing :正如Stephen Prata在他的C ++ Primer Plus一书所述,关键字extern
表示"使用此名称的变量,此名称是先前在外部定义的&#34 ;
答案 2 :(得分:1)
C11草案第6.2.4节说
在没有存储类说明符的情况下声明其标识符的对象
_Thread_local
,可以是外部或内部链接,也可以是存储类 说明符static
具有静态存储持续时间。它的一生就是整个执行 在程序启动之前,程序及其存储的值只初始化一次。
答案 3 :(得分:1)
该计划的生命周期。在加载时或程序启动时初始化一次。默认初始值为0.无法在块内初始化。