C語言基礎(chǔ)教程(二)數(shù)據(jù)類型、變量和運(yùn)算符(7)

字號:

4.3 變量存儲類型
     Turbo C2.0支持四種變量存儲類型。說明符如下:
     auto static extern register
    下面分別來介紹。
     一、auto
     auto稱為自動(dòng)變量, 已在前面作了介紹, 這里不再重復(fù)。
     二、static
     static稱為靜態(tài)變量。根據(jù)變量的類型可以分為靜態(tài)局部變量和靜態(tài)全程變量。
     1. 靜態(tài)局部變量
     它與局部變量的區(qū)別在于: 在函數(shù)退出時(shí), 這個(gè)變量始終存在, 但不能被其它
    函數(shù)使用, 當(dāng)再次進(jìn)入該函數(shù)時(shí), 將保存上次的結(jié)果。其它與局部變量一樣。
     2. 靜態(tài)全程變量
     Turbo C2.0允許將大型程序分成若干獨(dú)立模塊文件分別編譯, 然后將所有模塊
    的目標(biāo)文件連接在一起, 從而提高編譯速度, 同時(shí)也便于軟件的管理和維護(hù)。靜態(tài)
    全程變量就是指只在定義它的源文件中可見而在其它源文件中不可見的變量。它與
    全程變量的區(qū)別是: 全程變量可以再說明為外部變量(extern), 被其它源文件使用,
    而靜態(tài)全程變量卻不能再被說明為外部的, 即只能被所在的源文件使用。
     三、extern
     extern稱為外部變量。為了使變量除了在定義它的源文件中可以使用外, 還要
    被其它文件使用。因此, 必須將全程變量通知每一個(gè)程序模塊文件, 此時(shí)可用
    extern來說明。
     例如:
     文件1為file1.c 文件2為file2.c
     int i, j;/*定義全程變量*/ extern int i, j;/*說明將i, j從
     文件1中復(fù)制過來*/
     char c; extern char c; /*將c復(fù)制過來*/
     void func1(int k); func2() /*用戶定義函數(shù)*/
     {
     main() static float k;/*定義靜態(tài)變量*/
     { i=j*5/100;
     func1(20);/*調(diào)用函數(shù)*/ k=i/1.5;
     func2(); .
     . .
     . .
     . }