1,static定義局部變量和普通局部變量的對比:
static定義的變量具有記憶功能,可以保存上次修改的數值,而普通局部變量沒有此功能。
#include<stdio.h>
static int g_j = 0;
void fun_s_static()
{
static int s_i = 0;
s_i++;
printf("fun_s_static:s_i=%d\n",s_i);
}
void fun_s()
{
int s_i = 0;
s_i++;
printf("fun_s:s_i=%d\n",s_i);
}
void fun_g_static()
{
g_j++;
printf("fun_g_static:g_j=%d\n",g_j);
}
int main()
{
int i;
for (i=0;i<10;i++)
{
fun_s_static();
fun_s();
fun_g_static();
}
}
代碼運行結果如下:
總結如下:static定義的局部變量可以保存之前的數值,也可以用全局變量來代替,但是我們在項目中也是用static定義來使用。