const常量和#define宏常量的區別

C++能夠用const定義常量,也可使用#define來定義常量,可是前者比後者有更多的優勢:c++

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

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

 

因此在C++中應儘可能使用const來定義符號常量,包括字符串常量。調試

被const修飾的東西都受到c++/c語言實現的靜態類型安全機制的強制保護,能夠預防意外修改,提升程序的健壯性。字符串

相關文章
相關標籤/搜索