1. 程式人生 > >const 與#define 的比較

const 與#define 的比較

char etc 錯誤 esp ogr amp sin define nbsp

const 與#define 的比較

C++ 語言可以用 const 來定義常量,也可以用 #define 來定義常量。但是前者比後 者有更多的優點:

(1) const 常量有數據類型,而宏常量沒有數據類型。編譯器可以對前者進行類型安 全檢查。而對後者只進行字符替換,沒有類型安全檢查,並且在字符替換可能會 產生意料不到的錯誤(邊際效應)。

(2) 有些集成化的調試工具可以對 const常量進行調試,但是不能對宏常量進行調試。

 1 #include <iostream>
 2 
 3 /* run this program using the console pauser or add your own getch, system("pause") or input loop 
*/ 4 using namespace std; 5 int main(int argc, char** argv) { 6 7 int a,b; 8 //輸入數據 9 cout<<"a="; 10 cin>>a; 11 cout<<"b="; 12 cin>>b; 13 14 //除法判斷 15 if (b!=0 && a%b==0) { 16 cout<<b<<" divides "<<a<<endl;
17 cout<<"a/b="<<a/b<<endl; 18 } 19 else 20 cout<<b<<" does not divide "<<a<<endl; 21 return 0; 22 }

const 與#define 的比較