const和巨集定義的區別!!!

2022-05-15 07:17:59 字數 632 閱讀 9791

巨集的命名規範:一般以專案字首開頭,key結尾。

#開頭表編譯。

巨集的用法:1、定義常用字串。

2、定義一段**。

const與巨集的區別:1、編譯時刻:巨集-預編譯    const-command+b(編譯階段)編譯。

2、巨集不會檢查**錯誤,只是替換,但是const會編譯報錯。

3、巨集的好處:定義**或字串、方法、引數 const不能。  壞處:使用大量巨集,容易造成編譯時間久,每次都需要重新替換。

注意:很多blog都說使用巨集,會消耗很多記憶體,我這驗證並不會生成很多記憶體,巨集定義的是常量,常量都放在常量區,只會生成乙份記憶體。

const的用法:      1、int *const p ; p為唯讀,*p為變數。

2、const int *p ; *p為唯讀,p為變數。

3、int const * const p ;*p、p都為唯讀。

4、const int * const p ;*p、p都為唯讀。

const在開發中使用的場景:1、定義全域性唯讀引數,代替巨集,減低編譯速度。

2、方法中定義唯讀引數,不允許更改。

巨集定義define和const的區別

define和const都可以用來定義常量,define的格式為 define 識別符號 字串,const在定義常量前面,const型別定以後不能被修改,區別主要有如下幾點 define是在預處理時進行展開,在編譯時會將其全部替換,const在編譯執行使使用 define是直接替代,因此不占用記憶體...

巨集定義( define)和常量(const)的區別

之前一直沒有仔細研究過 define 和 const 的區別,最近由於種種原因被問及此點,完全一頭霧水,於是便蒐集相關資料做了如下的總結。define和const區別 1.型別和安全檢查不同 巨集定義是字元替換,沒有資料型別的區別,同時這種替換沒有型別安全檢查,可能產生邊際效應等錯誤 const常量...

巨集定義 define 和常量 const 的區別

學習筆記!參考鏈結 一 型別和安全檢查不同 巨集定義是字元替換,沒有資料型別的區別,同時這種替換沒有型別安全檢查,可能產生邊際效應等錯誤 const常量是常量的宣告,有型別區別,需要在編譯階段進行型別檢查 二 編譯器處理不同 巨集定義是乙個 編譯時 概念,在預處理階段展開,不能對巨集定義進行除錯,生...