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、方法中定义只读参数,不允许更改。

 

 

posted @ 2016-09-26 23:54  yiki  阅读(5609)  评论(0编辑  收藏  举报