局部變量
#include "stdio.h"
int myadd(){
int x = 0;
static int y = 0;
x= x +1;
y = y+1; // 一直累積
printf("x=%d , y=%d \n",x,y);
}
測試
int main(){
myadd();
myadd();
myadd();
myadd();
myadd();
return 1;
}
輸出
觀察y的值
x=1 , y=1
x=1 , y=2
x=1 , y=3
x=1 , y=4
x=1 , y=5
static修飾的函數
static int myaddstatic(){
return 1;
}
靜态函數的作用域僅限于目前檔案,不能被其它檔案調用,
這個和java有點不同,java隻要是公開的靜态函數,就可以被其他檔案所通路
C語言是沒用static修飾的函數,反而可以被其他檔案所通路,用static修飾的函數,反而不能被其他檔案通路
static修飾變量
a檔案定義
static int PAGE_SIZE = 20;
b檔案
extern int PAGE_SIZE;
b檔案是使用不了PAGE_SIZE的
如果使用,編譯的時候,就會報錯