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