符號常量
符號常量
符號常量是在C語言中,可以用一個標識符來表示一個常量,這個標識符稱之為符號常量。其特點是編譯后寫在代碼區,不可定址,不可更改,屬於指令的一部分。
符號常量在使用之前必須先定義,其一般形式為:#define 標識符 常量num EnumName{標識符,...};
其中#define 也是一條預處理命令(預處理命令都以"#"開頭),稱為宏定義命令,其功能是把該標識符定義為其後的常量值。一經定義,以後在程序中所有出現該標識符的地方均代之以該常量值。習慣上符號常量的標識符用大寫字母,變數標識符用小寫字母,以示區別。
枚舉類型中的元素也是符號常量,如enum Weekday{SUN, MON, TUES, WED, THU, FRI, SAT}。
例:
#include
#define PRICE 30
main()
{
int num,total;
num=10;
total=num* PRICE;
printf("total=%d",total);
}
使用符號常量的好處是:含義清楚;能做到“一改全改”。
形式為:const type name = value;
例如:const int MONTHS = 12;
這樣就可以在程序中使用MONTHS而不是12了。常量(如MONTHS)被初始化后,其值就被固定了,編譯器將不允許再修改該常量的值。
假如您這樣做:MONTHS = 18;是不對的,就好像您將值4賦給值3一樣,無法通過編譯。
此外注意應在聲明中對const進行初始化。下面的代碼是不正確的:const int toes;// toes的值此時是不確定的toes=10;//這時進行賦值就太晚了
如果在聲明常量時沒有提供值,則該常量的值是不確定的,而且無法修改它。