目錄
一.關鍵字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的有效位通常有 位,指的是小...