使用const可以采用类似定义变量的方法来定义常量,在定义的时候必须初始化以指明常量值。比如 const int a =1; 。

  那么编译器会给const定义的常量分配内存空间吗?如果分配了内存空间,那么每次使用这个常量都要访问这个地址,空间效率暂且不论,时间效率不也被大大浪费?在这里可能一开始大家都会有这样的疑问。特别是单片机编程出身的我,在那个一无所知的时候觉得浪费效率简直浑身难受(单片机的计算能力非常有限)。

  先说是否给const常量分配空间,答案是会。可以对一个const常量取地址,因此无疑const常量在内存中是有一席之地的。

  再说时间效率,实际上编译器都会采用常量折叠技术来优化代码。具体说就是像宏替换一样把常量替换成立即数。但与宏替换不同的是,这个是在编译阶段完成的。这样凡是用到const常量的时候,都不需要访问内存去取出常量值,而是直接用立即数(这个数是直接写在机器指令里的)。这样的时间效率和宏替换相当。尽可能多的使用const关键字吧,这样可以大大减少bug数量。

电脑培训,计算机培训,平面设计培训,网页设计培训,美工培训,Web培训,Web前端开发培训

      a =   
    =

电脑培训,计算机培训,平面设计培训,网页设计培训,美工培训,Web培训,We
        
		<div class=

网友评论