【发布时间】:2015-10-04 06:24:39
【问题描述】:
我的理解是局部静态变量具有“程序范围”;也就是说,一旦定义它就会一直存在,直到程序终止。此外,我的理解是,本地静态也可以在当前模块/C 文件之外访问,它们在其中定义:
void doSomething() {
static int myVar = 5; // Program scope & accessible to other modules
}
我的理解是全局静态变量也有程序范围,但它们只对当前模块/C文件可见:
static int myVar = 5; // Program scope but "module private"
void doSomething() {
// Whatever here...
}
这不是有点倒退吗?我原以为情况会相反。所以我问:我上面的理解正确吗?如果是这样,那么在当前模块之外可以访问局部静态变量而不是全局静态变量的动机是什么?
【问题讨论】:
标签: c global-variables static-variables