成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C++編譯器如何對Const常量進行分配存儲空間

開發 后端
C++編譯器通常不為普通Const常量分配存儲空間,而是將它們保存在符號表中,這使得它成為一個編譯期間的常量。

所謂C++編譯器,C++編譯器是C++中的一個與標準化高度兼容的編譯環境,編譯器對不同的CPU會進行不同的優化,下面說明C++編譯器進行Const常量分配存儲空間的說明介紹。

Const 是C++中常用的類型修飾符,有某些微妙的應用場合,如果沒有搞清本源,則錯誤在所難免。本篇中將對const進行辨析。溯其本源,究其實質,希望能對大家理解const有所幫助,根據思維的承接關系,分為如下幾個部分進行闡述。C++的提出者當初是基于什么樣的目的引入(或者說保留)const關鍵字呢?,這是一個有趣又有益的話題,對理解const很有幫助。

1. 大家知道,C++有一個類型嚴格的編譯系統,這使得C++程序的錯誤在編譯階段即可發現許多,從而使得出錯率大為減少,因此,也成為了C++與C相比,有著突出優點的一個方面。

2. C++中很常見的預處理指令 #define VariableName VariableValue 可以很方便地進行值替代,這種值替代至少在三個方面優點突出:一是避免了意義模糊的數字出現,使得程序語義流暢清晰。

二是可以很方便地進行參數的調整與修改,如上例,當人數由107變為201時,進改動此處即可,三是提高了程序的執行效率,由于使用了預編譯器進行值替代,并不需要為這些常量分配存儲空間,所以執行的效率較高。鑒于以上的優點,這種預定義指令的使用在程序中隨處可見。

3. 說到這里,大家可能會迷惑上述的1點、2點與const有什么關系呢?,好,請接著向下看來:

預處理語句雖然有以上的許多優點,但它有個比較致命的缺點,即,預處理語句僅僅只是簡單值替代,缺乏類型的檢測機制。這樣預處理語句就不能享受C++嚴格類型檢查的好處,從而可能成為引發一系列錯誤的隱患。

4.好了,第一階段結論出來了:

結論: Const 推出的初始目的,正是為了取代預編譯指令,消除它的缺點,同時繼承它的優點。

現在它的形式變成了:

Const DataType VariableName = VariableValue ;為什么const能很好地取代預定義語句?const 到底有什么大神通,使它可以振臂一揮取代預定義語句呢?

1. 首先,以const 修飾的常量值,具有不可變性,這是它能取代預定義語句的基礎。

2. 第二,很明顯,它也同樣可以避免意義模糊的數字出現,同樣可以很方便地進行參數的調整和修改。

3. 第三,C++的編譯器通常不為普通const常量分配存儲空間,而是將它們保存在符號表中,這使得它成為一個編譯期間的常量,沒有了存儲與讀內存的操作,使得它的效率也很高,同時,這也是它取代預定義語句的重要基礎。

這里,我要提一下,為什么說這一點是也是它能取代預定義語句的基礎,這是因為,編譯器不會去讀存儲的內容,如果編譯器為const分配了存儲空間,它就不能夠成為一個編譯期間的常量了。

4. 最后,const定義也像一個普通的變量定義一樣,它會由編譯器對它進行類型的檢測,消除了預定義語句的隱患。

分析:上述寫法限定函數的返回值不可被更新,當函數返回內部的類型時(如fun1),已經是一個數值,當然不可被賦值更新。所以,此時const無意義,最好去掉,以免困惑。當函數返回自定義的類型時(如fun2),這個類型仍然包含可以被賦值的變量成員,所以,此時有意義。

【編輯推薦】

  1. 簡介學習C++總結之談
  2. 對C++庫函數進行學習探索總結筆記
  3. C++類庫設計的基本構思與方法
  4. C++語言真的還有市場價值?
  5. C++類庫設計的基本構思與方法
責任編輯:chenqingxiang 來源: NET130
相關推薦

2010-01-13 14:35:10

Visual C++

2010-01-14 15:29:44

C++編譯器

2010-01-13 17:12:26

C++編譯器

2010-01-15 16:37:28

Visual C++

2010-01-15 17:18:57

C++源程序

2010-01-18 10:34:21

C++編譯器

2010-01-21 09:11:38

C++編譯器

2010-01-27 16:39:48

C++編譯器

2013-03-18 09:42:47

C++C++ 11

2015-03-23 10:04:43

c++編譯器c++實現原理總結

2010-01-18 10:28:15

C++編譯器

2010-10-20 13:43:37

C++編譯器

2010-02-03 13:14:03

C++編譯器命令

2010-01-12 16:42:59

C++編譯器

2010-01-19 13:01:32

C++數據類型

2023-11-15 17:58:58

C++代碼

2010-01-21 09:26:53

CC++編譯器

2010-01-14 14:55:14

C++編譯器

2009-01-12 10:16:11

Visual C++編譯器選項設置

2010-01-27 14:48:55

優秀C++編譯器
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美一级久久精品 | 欧美男人天堂 | 精品国产青草久久久久96 | 日韩中文在线视频 | 久久精品一区二区三区四区 | 国产精品视频一区二区三区四蜜臂 | 香蕉一区二区 | 欧美在线视频一区二区 | 色综合网站 | 精品一区二区观看 | 久久乐国产精品 | 伊人伊成久久人综合网站 | 888久久久 | 午夜专区 | 国产精品一区二区av | 91色在线| 免费在线观看一区二区三区 | 日韩视频精品在线 | 精品国产欧美一区二区三区成人 | 国产精品视频一二三区 | 最新中文字幕在线 | 欧美偷偷操 | 日韩在线视频免费观看 | 国产精品观看 | 在线视频国产一区 | 99热国产在线播放 | 久草新视频 | 欧美综合一区 | 久久久久亚洲av毛片大全 | 欧美日韩在线免费观看 | 日韩av一区二区在线观看 | 欧美日韩亚洲国产 | 热久久999| 51ⅴ精品国产91久久久久久 | 亚洲免费人成在线视频观看 | 成人免费一区二区 | 在线视频一区二区三区 | 国产欧美性成人精品午夜 | 日本一区二区不卡视频 | 国产免费拔擦拔擦8x高清 | 91视频国产一区 |