天天看點

C語言static關鍵字用法

局部變量

#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的

如果使用,編譯的時候,就會報錯

總結