举例一个关于C语言中static的作用的代码
时间: 2023-03-27 22:04:55 浏览: 83
以下是一个关于C语言中static的作用的代码示例:
#include <stdio.h>
void increment() {
static int count = ; // 静态变量
count++;
printf("count is %d\n", count);
}
int main() {
increment(); // count is 1
increment(); // count is 2
increment(); // count is 3
return ;
}
在这个示例中,我们定义了一个名为increment的函数,它包含一个静态变量count。每次调用increment函数时,count的值都会增加1,并打印出当前的count值。由于count是静态变量,它只会在程序第一次执行increment函数时初始化,之后每次调用increment函数时,count的值都会保留上一次调用的结果。这就是static关键字的作用。
相关问题
写一个代码举例C语言的缺省值
在C语言中,如果没有为变量赋值,那么它的初始值将是不确定的,也就是可能是任意值。为了避免这种情况,可以使用静态存储区域的变量,它们的初始值将被自动设为0。
例如:
```c
#include <stdio.h>
int main() {
static int x; // 静态变量默认值为0
int y; // 没有初始化的变量初始值不确定
printf("x=%d, y=%d\n", x, y);
return 0;
}
```
输出结果为:
```
x=0, y=32767
```
可以看到,静态变量x的初始值为0,而没有初始化的变量y的初始值则是不确定的。
在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"。