C++尽量以const,enum,inline替换#define
生活随笔
收集整理的這篇文章主要介紹了
C++尽量以const,enum,inline替换#define
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
最好編譯器替換預(yù)處理器
- 以const替換#define
- 以enum替換#define
- 以inline替換#define
以const替換#define
#define ASPECT_RATIO 1.653替換為:
const double AspectRatio = 1.653?調(diào)試的需要:#define的記號(hào)會(huì)被預(yù)處理器移走,記號(hào)名稱可能沒(méi)進(jìn)入記號(hào)表內(nèi)。因此當(dāng)#define的宏名稱獲得一個(gè)編譯錯(cuò)誤時(shí),會(huì)引起困惑,浪費(fèi)大量時(shí)間追蹤錯(cuò)誤。而AspectRatio肯定會(huì)被編譯器看到
?更小的代碼量:對(duì)浮點(diǎn)數(shù)而言,使用常量可能比使用#define導(dǎo)致較小量的代碼,因?yàn)轭A(yù)處理器“盲目地將ASPECT_RATIO替換為1.653”可能導(dǎo)致目標(biāo)碼出現(xiàn)多份1.653
但是,以常量替換#define時(shí)要注意:
?定義常量指針時(shí):由于常量定義式通常被定義在頭文件內(nèi),因此有必要將指針聲明為const。如: const char* const authorName = “Scott Meyers”;
class專屬常量:class專屬常量需
總結(jié)
以上是生活随笔為你收集整理的C++尽量以const,enum,inline替换#define的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 电脑没显示u盘怎么弹出窗口 电脑无法显示
- 下一篇: C++重载与模板