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