C++里面的const是怎么实现的?

转载 2016年08月29日 21:32:53

Const 推出的初始目的,正是为了取代预编译指令,消除它的缺点,同时继承它的优点。

现在它的形式变成了:

Const DataType VariableName = VariableValue ;为什么const能很好地取代预定义语句?const 到底有什么大神通,使它可以振臂一挥取代预定义语句呢?

1. 首先,以const 修饰的常量值,具有不可变性,这是它能取代预定义语句的基础。

2. 第二,很明显,它也同样可以避免意义模糊的数字出现,同样可以很方便地进行参数的调整和修改。

3. 第三,C++的编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很高,同时,这也是它取代预定义语句的重要基础。

这里,我要提一下,为什么说这一点是也是它能取代预定义语句的基础,这是因为,编译器不会去读存储的内容,如果编译器为const分配了存储空间,它就不能够成为一个编译期间的常量了。

4. 最后,const定义也像一个普通的变量定义一样,它会由编译器对它进行类型的检测,消除了预定义语句的隐患。

c++ const常量的实现机制

const关键字的基本思想就是将一个变量变成常量,试图从语言设计者的角度去分析引入该关键字的动机。 我猜测原因如下: 1)提醒程序员,某些值是常量,如PI。或该值在程序运行期间是不变的,防止程序员...
  • GSYzhu
  • GSYzhu
  • 2012年11月30日 15:07
  • 4256

类中的const变量的初始化

我们知道在const定义的变量是
  • zhouyelihua
  • zhouyelihua
  • 2014年04月13日 14:24
  • 6760

腾讯面试题03.C++里面的const是怎么实现的?

Const 推出的初始目的,正是为了取代预编译指令,消除它的缺点,同时继承它的优点。 现在它的形式变成了: Const DataType VariableName = VariableValue ...
  • mxsgoden
  • mxsgoden
  • 2013年04月19日 00:57
  • 1858

const常量的实现机制以及与宏定义区别

(1) 编译器处理方式不同   define宏是在预处理阶段展开。   const常量是编译运行阶段使用。 (2) 类型和安全检查不同   define宏没有类型,不做任何类型检查,仅仅是展开...
  • u014082714
  • u014082714
  • 2015年03月16日 10:49
  • 1739

const的实现原理

const 用于修饰常量时,分两种情况 1. 被修饰的常量是基本类型 此时,程序在编译时,就将变量用常量来替换了。 实现机制:这些在编译期间完成,对于内置类型,如int,编译器可能使用常数直...
  • u010276189
  • u010276189
  • 2016年03月21日 16:48
  • 1437

C++里面的const和c语言里面的const

众所周知;在C语言里面用const;是可以修改的; //C语言里面可以通过指针修改 int  main() { //可以这么说在C语言中a是一个只读的常量。按照理论我们不好修改// const int...
  • CrazysPopcorn_qian
  • CrazysPopcorn_qian
  • 2014年04月29日 06:42
  • 1096

c++中const的用法和注意事项

1、const修饰成员变量: 在c++中在定义常量是通常会用到的const,但是对于const的位置不同通常是表示不同的作用,而且之间的相互作用通常会造成混淆,下面作简要注解:     1)、直接修饰...
  • m0_37338590
  • m0_37338590
  • 2017年03月10日 11:34
  • 544

C++中的const的内存分配问题

在c++我们知道一般是采用const来进行替代#define的。    例如:       const int N=3;//注意采用的是赋值的形式并且末尾有分号 #define N 3      在...
  • zhouyelihua
  • zhouyelihua
  • 2014年04月09日 10:47
  • 2744

C++类里面的const

int extern_a = 0; class A { public: const int cc; int b; int bb(); A(int a):b(a),cc(0){} void...
  • woriwoshi
  • woriwoshi
  • 2015年07月30日 16:42
  • 166

const在C和C++编译中的区别(实现机制)

const在C和C++编译器中的实现机制,怎么实现只读,为什么不可修改。
  • chengshuguang
  • chengshuguang
  • 2013年11月20日 23:19
  • 1063
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++里面的const是怎么实现的?
举报原因:
原因补充:

(最多只允许输入30个字)