用預(yù)處理指令定義常量,這樣定義的常量不含類型信息,編譯器只是會在編譯前執(zhí)行進行替換操作, 即使有人重新定義了常量值,編譯器也不會發(fā)生警告
建議使用 const 定義常量
const int Max =100; ?定義的常量,具有不可更改性.
可以進行類型檢查
可以節(jié)省空間,避免不必要的內(nèi)存分配,
# define ?PI 3.14159 //常量宏
double I =PI ; ? //執(zhí)行替換 ,分配內(nèi)存
double j =PI ; // 執(zhí)行替換,分配內(nèi)存
.....
const double Pi =3.14159; ?// 此時并未將PI放入ROM中, ?double i =Pi;//此時 為PI 分配內(nèi)存內(nèi)存,以后不再分配.
double I =PI ;? //分配內(nèi)存,只分配一次
double j =Pi ;//沒有內(nèi)存分配.
const定義的常量在程序運行過程中只有一份拷貝,而#define定義的常量在你內(nèi)存中有若干個拷貝.