在函数中将变量声明为静态意味着什么?

时间:2014-04-14 01:30:54

标签: c

我正在寻找一种能够产生音效的功能,我找到了一个用C语言编写的功能。

在此函数内部,一些变量声明为Static。我很困惑,我认为静态意味着这些变量对其他文件不可见。但由于它们是在函数内部声明的,因此它们已经不可见于其他文件。

我错过了什么?

1 个答案:

答案 0 :(得分:3)

函数内的

static意味着它将在下次调用函数时保持其值。

例如,

int foo() {
    static int i = 0;
    printf("%d\n", i);
    i++;
}

int main() {
    foo(); // Prints 0
    foo(); // Prints 1
}