使用const可以采用類似定義變量的方法來定義常量,在定義的時候必須初始化以指明常量值。比如 const int a =1; 。

  那么編譯器會給const定義的常量分配內存空間嗎?如果分配了內存空間,那么每次使用這個常量都要訪問這個地址,空間效率暫且不論,時間效率不也被大大浪費?在這里可能一開始大家都會有這樣的疑問。特別是單片機編程出身的我,在那個一無所知的時候覺得浪費效率簡直渾身難受(單片機的計算能力非常有限)。

  先說是否給const常量分配空間,答案是會??梢詫σ粋€const常量取地址,因此無疑const常量在內存中是有一席之地的。

  再說時間效率,實際上編譯器都會采用常量折疊技術來優(yōu)化代碼。具體說就是像宏替換一樣把常量替換成立即數。但與宏替換不同的是,這個是在編譯階段完成的。這樣凡是用到const常量的時候,都不需要訪問內存去取出常量值,而是直接用立即數(這個數是直接寫在機器指令里的)。這樣的時間效率和宏替換相當。盡可能多的使用const關鍵字吧,這樣可以大大減少bug數量。

電腦培訓,計算機培訓,平面設計培訓,網頁設計培訓,美工培訓,Web培訓,Web前端開發(fā)培訓

      a =   
    =

電腦培訓,計算機培訓,平面設計培訓,網頁設計培訓,美工培訓,Web培訓,We
        
		<div   id=

網友評論