const和宏定義的區別!!!


宏的命名規范:一般以項目前綴開頭,key結尾。

#開頭表編譯。

宏的用法:1、定義常用字符串。

              2、定義一段代碼。

 

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

         2、宏不會檢查代碼錯誤,只是替換,但是const會編譯報錯。

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

 

const作用:限制類型

  • 1.const僅僅用來修飾右邊的變量(基本數據變量p,指針變量*p)
  • 2.被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.需求1:提供一個方法,這個方法的參數是地址,里面只能通過地址讀取值,不能通過地址修改值
  • 2.需求2:提供一個方法,這個方法的參數是地址,里面不能修改參數的地址。

 

const在開發中使用的場景:1、定義全局只讀參數,代替宏,減低編譯速度。

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

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM