C語言關鍵字

2021-09-26 23:55:27 字數 1926 閱讀 6171

目錄

一.關鍵字typedef

二.關鍵字static

#include typedef long int32_t;//給long取了個別名,long在vs環境中長度為4個位元組,佔32位

int main()

其作用:在c中用來修飾變數和函式。

例如,下面這個程式要實現使test()迴圈十次的功能。

#include #include void test()

int main()//列印結果都為1,出現這種情況的原因是因為num是乙個區域性變數

system("pause");

return 0;

}

要解決上述問題,可以有以下兩種辦法:

1)將num改為全域性變數。

#include #include int num=0;//將num改為全域性變數後,列印結果為1~10

void test()

int main()

system("pause");

return 0;

}

2)使用static關鍵字(修飾區域性變數)。

#include #include void test()

int main()//列印結果都為1,出現這種情況的原因是因為num是乙個區域性變數

system("pause");

return 0;

}

除此之外,static還有另外兩個作用:一是修飾全域性變數時改變變數的作用域,不改變變數的生命週期;二是修飾函式時

改變其作用域,不改變其生命週期。下面將對其進行詳細的講解說明。

(一)static修飾全域性變數

下面再來討論乙個新的問題,在原有基礎上,新建乙個檔案

//全域性變數命名的時候,最好加上 g_字首,可以與區域性變數有所區分

int g_count=100;

在第一次新建的檔案中列印g_count

#include #include //變數的宣告,在跨程式時要使用extern關鍵字進行變數宣告

extern int g_count;

int main()

結果:編譯報錯,找不到定義。

當加上extern int g_count;

後編譯成功。

把第二個檔案中的int g_count=100;

改為static int g_count=100;

後執行程式,發現編譯報錯,說明static修飾全域性變數的時候,就會導致該全域性變數的作用域僅限於當前 .c檔案。

(二)static用來修飾函式

檔案一

int add(int x,int y)
檔案二

#include #include extern int add(int x,int y);//不加宣告時,會有警告,但是程式還可以編譯

int main()

將檔案一中的內容改為如下內容時會發現,編譯時會報錯。

//static 修飾函式的時候,就會導致當前函式只能在當前.c檔案中使用

static int add(int x,int y)

下面將static的用法再做乙個總結

1.修飾區域性變數:修改變數的生命週期為整個程式

2.修飾全域性變數:修改變數的作用域為當前檔案

3.修飾函式:修改函式的作用域為當前檔案

以上就是對關鍵字typedef與static使用方法的知識點~續更.......

C語言關鍵字

c語言關鍵字 在檔案範圍的教訓和關鍵字,你知道靜態變數保持他們的價值觀,甚至不在他們超出範圍的破壞。比如說呢。int generateid int main this program prints 01 2 請注意,s nid一直保持它的價值的跨多個函式呼叫。static關鍵字有另一種意思當應用到全...

C語言關鍵字

關鍵字就是已被c語言本身使用,不能作其它用途使用的字。例如關鍵字不能用作變數名 函式名等 由ansi標準定義的c語言關鍵字共32個 auto double int struct break else long switch case enum register typedef char extern...

c語言關鍵字

c 語言標準定義的32 個關鍵字 1 auto 宣告自動變數,預設時編譯器一般預設為auto int 宣告整型變數 double 宣告雙精度變數 雙精度浮點型 long 宣告長整型變數 char 宣告字元型變數 float 宣告浮點型變數 單精度浮點型 6.1 float的有效位通常有 位,指的是小...