常量的三種定義方式和static在c語言中的三種修飾
阿新 • • 發佈:2018-12-05
c語言的常量在執行期間為固定值,在定義後無法被修改
常量可以是任何的資料基本型別,可以為整形,浮點常量,字元和字串常量
1,使用const關鍵字
2, 使用巨集定義
3,使用列舉常量
列舉:
1 #include<stdio.h> 2 int main(){ 3 enum sex{ 4 male, 5 female, 6 unknown, 7 }; 8 printf("%d\n%d\n%d\n", male, female, unknown); 9 return 0;10 }
巨集定義:
1 #define i 5
const關鍵字修飾的常量不可被再修改,例如:
1 const int i=6;
在vs同一個工程下建立兩個.c格式的檔案:
在第一個.c檔案下寫:
1 static int g_val = 100;
在第二個.c檔案下寫上
1 #include <stdio.h> 2 #include<stdlib.h> 3 extern int g_val; 4 5int main(){ 6 /*int g_val = 30;*/ 7 8 printf("%d\n", g_val); 9 system("pause"); 10 return 0; 11 }
執行結果如下:
當去掉第一個程式的static時候:
1 int g_val = 100;
再次執行第二個程式顯示編譯成功。
這是因為:
static作用於同一個工程中2.c檔案內的int g_val;使之從全域性變數變為了區域性變數,從而在1.c檔案中編譯器無法打印出g_val另外在同一個工程中的不同的.c檔案中如果需要引用另一個.c中的變數,需要使用extern在進入主要函式之前