在C语言中,static应用程序举例
时间: 2023-07-19 18:21:16 浏览: 144
c语言中static使用方法
下面是一些C语言中`static`的应用程序举例:
1. 声明静态变量
```c
void func(){
static int count = 0;
count++;
printf("调用函数的次数:%d\n", count);
}
int main(){
func(); //输出:调用函数的次数:1
func(); //输出:调用函数的次数:2
func(); //输出:调用函数的次数:3
return 0;
}
```
在上面的例子中,`count`是一个静态变量,每次调用`func()`函数时,`count`的值加1。由于`count`是静态变量,它的值在函数调用结束后并不会被销毁,而是保留在内存中,所以每次调用`func()`函数时,`count`的值会继续累加。
2. 声明静态函数
```c
static int add(int a, int b){
return a + b;
}
int main(){
int sum = add(10, 20);
printf("10 + 20 = %d\n", sum);
return 0;
}
```
在上面的例子中,`add()`函数被声明为静态函数,因此它只能在本文件中被调用,不能被其他文件调用。
3. 声明静态全局变量
```c
static int count = 0;
void func(){
count++;
printf("调用函数的次数:%d\n", count);
}
int main(){
func(); //输出:调用函数的次数:1
func(); //输出:调用函数的次数:2
func(); //输出:调用函数的次数:3
return 0;
}
```
在上面的例子中,`count`是一个静态全局变量,它只能在本文件中被访问,不能被其他文件访问。
4. 静态断言
```c
#include <assert.h>
#define SIZE 10
int main(){
static_assert(SIZE == 20, "数组大小必须是20");
int arr[SIZE];
return 0;
}
```
在上面的例子中,使用`static_assert`关键字进行静态断言,如果`SIZE`不等于20,则编译失败,并输出错误信息"数组大小必须是20"。
阅读全文