静态局部变量:如果你在函数内部定义一个静态变量,该变量只会初始化一次,而不是每次调用函数时都初始化。这意味着该变量的值在函数调用之间是持久的。
- void foo() {
- static int x = 0;
- x++;
- printf("%d\n", x);
- }
- 在这个例子中,每次调用foo(),x的值都会增加1。
静态全局变量和函数:全局静态变量和函数的作用域局限于声明它们的文件。这意味着,如果你在一个文件中声明了一个全局静态变量或函数,它将无法从其他文件中访问。这有助于封装和隐藏实现细节。
- static int x = 0; // 这个变量只能在此文件中访问
-
- static void foo() { // 这个函数只能在此文件中访问
- // ...
- }