- 高質(zhì)量程序設計指南:C++/C語言
- 林銳 韓永泉編著
- 366字
- 2019-01-09 14:09:02
5.3 const與#define的比較
C++語言可以用const來定義常量,也可以用 #define來定義常量。但是前者比后者具有更多的優(yōu)點:
(1)const常量有數(shù)據(jù)類型,而宏常量沒有數(shù)據(jù)類型。編譯器可以對前者進行靜態(tài)類型安全檢查;而對后者只進行字符替換,沒有類型安全檢查,并且在字符替換時可能會產(chǎn)生意料不到的錯誤(邊際效應)。
(2)有些集成化的調(diào)試工具可以對const常量進行調(diào)試,但是不能對宏常量進行調(diào)試。
【提示5-3】: 所以在C++程序中應盡量使用const來定義符號常量,包括字符串常量。
要注意的是,const不僅僅用于定義符號常量,凡是需要編譯器幫助我們預防無意中修改數(shù)據(jù)的地方,都可以使用const,如const數(shù)據(jù)成員、const成員函數(shù)、const返回類型、const參數(shù)等。
【提示5-4】: const是constant的縮寫,是“恒定不變”的意思。被const修飾的東西都受到C++/C語言實現(xiàn)的靜態(tài)類型安全檢查機制的強制保護,可以預防意外修改,能提高程序的健壯性。請參考6.13節(jié)的論述。
推薦閱讀
- Moodle Administration Essentials
- Getting Started with PowerShell
- Python程序設計案例教程
- Securing WebLogic Server 12c
- 零基礎學Python數(shù)據(jù)分析(升級版)
- uni-app跨平臺開發(fā)與應用從入門到實踐
- Nagios Core Administration Cookbook(Second Edition)
- PHP與MySQL權(quán)威指南
- 零基礎學C++(升級版)
- WordPress Search Engine Optimization(Second Edition)
- Python編程快速上手2
- C# 7.1 and .NET Core 2.0:Modern Cross-Platform Development(Third Edition)
- Learning WordPress REST API
- Microsoft XNA 4.0 Game Development Cookbook
- Java Script從入門到精通(第5版)