c语言static的用法
时间: 2023-11-10 19:58:06 浏览: 80
在C语言中,static可以用于以下几种情况:
1. 静态局部变量
当static用于局部变量时,该变量只能在声明它的函数中使用,但其作用域与普通局部变量不同,它的生存期不会随函数的调用结束而结束,而是在程序运行期间一直存在,直到程序结束。静态局部变量初始化只会执行一次,之后每次函数调用都会使用上一次的值。
示例:
```
#include <stdio.h>
void func() {
static int i = 0;
i++;
printf("%d\n", i);
}
int main() {
func(); //输出1
func(); //输出2
func(); //输出3
return 0;
}
```
2. 静态全局变量
当static用于全局变量时,该变量的作用域仅限于当前文件,其他文件无法访问。静态全局变量的生存期与普通全局变量相同,也是在程序运行期间一直存在。
示例:
在file1.c中定义:
```
static int i = 0;
void func() {
i++;
printf("%d\n", i);
}
```
在file2.c中调用:
```
#include <stdio.h>
void func();
int main() {
func(); //输出1
func(); //输出2
func(); //输出3
return 0;
}
```
3. 静态函数
当static用于函数时,该函数的作用域仅限于当前文件,其他文件无法调用。静态函数的作用主要是隐藏实现细节,防止其他文件误调用该函数。
示例:
在file1.c中定义:
```
static void func() {
printf("Hello, World!\n");
}
void callFunc() {
func();
}
```
在file2.c中调用:
```
#include <stdio.h>
void callFunc();
int main() {
callFunc(); //输出Hello, World!
return 0;
}
```
阅读全文