青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 297,  comments - 15,  trackbacks - 0

(1)auto

  這個這個關鍵字用于聲明變量的生存期為自動,即將不在任何類、結構、枚舉、聯合和函數中定義的變量視為全局變量,而在函數中定義的變量視為局部變量。這個關鍵字不怎么多寫,因為所有的變量默認就是auto的。

(2)register

  這個關鍵字命令編譯器盡可能的將變量存在CPU內部寄存器中而不是通過內存尋址訪問以提高效率。

(3)static

  常見的兩種用途:
    1>統計函數被調用的次數;
    2>減少局部數組建立和賦值的開銷.變量的建立和賦值是需要一定的處理器開銷的,特別是數組等含有較多元素的存儲類型。在一些含有較多的變量并且被經常調用的函數中,可以將一些數組聲明為static類型,以減少建立或者初始化這些變量的開銷.

  詳細說明:
    1>、變量會被放在程序的全局存儲區中,這樣可以在下一次調用的時候還可以保持原來的賦值。這一點是它與堆棧變量和堆變量的區別。
    2>、變量用static告知編譯器,自己僅僅在變量的作用范圍內可見。這一點是它與全局變量的區別。
    3>當static用來修飾全局變量時,它就改變了全局變量的作用域,使其不能被別的程序extern,限制在了當前文件里,但是沒有改變其存放位置,還是在全局靜態儲存區。

  使用注意:
    1>若全局變量僅在單個C文件中訪問,則可以將這個變量修改為靜態全局變量,以降低模塊間的耦合度;
    2>若全局變量僅由單個函數訪問,則可以將這個變量改為該函數的靜態局部變量,以降低模塊間的耦合度;
    3>設計和使用訪問動態全局變量、靜態全局變量、靜態局部變量的函數時,需要考慮重入問題(只要輸入數據相同就應產生相同的輸出)。

(4)const

  被const修飾的東西都受到強制保護,可以預防意外的變動,能提高程序的健壯性。它可以修飾函數的參數、返回值,甚至函數的定義體。

  作用:
    1>修飾輸入參數
      a.對于非內部數據類型的輸入參數,應該將“值傳遞”的方式改為“const引用傳遞”,目的是提高效率。例如將void Func(A a) 改為void Func(const A &a)。
      b.對于內部數據類型的輸入參數,不要將“值傳遞”的方式改為“const引用傳遞”。否則既達不到提高效率的目的,又降低了函數的可理解性。例如void Func(int x) 不應該改為void Func(const int &x)。
    2>用const修飾函數的返回值
      a.如果給以“指針傳遞”方式的函數返回值加const修飾,那么函數返回值(即指針)的內容不能被修改,該返回值只能被賦給加const修飾的同類型指針。
       如對于: const char * GetString(void);
       如下語句將出現編譯錯誤:
        char *str = GetString();//cannot convert from 'const char *' to 'char *';
       正確的用法是:
       const char *str = GetString();
      b.如果函數返回值采用“值傳遞方式”,由于函數會把返回值復制到外部臨時的存儲單元中,加const修飾沒有任何價值。 如不要把函數int GetInt(void) 寫成const int GetInt(void)。
    3>const成員函數的聲明中,const關鍵字只能放在函數聲明的尾部,表示該類成員不修改對象.

   說明:
    const type m; //修飾m為不可改變
   示例:
    typedef char * pStr; //新的類型pStr;
    char string[4] = "abc";
    const char *p1 = string;
    p1++; //正確,上邊修飾的是*p1,p1可變
    const pStr p2 = string;
    p2++; //錯誤,上邊修飾的是p2,p2不可變,*p2可變
   同理,const修飾指針時用此原則判斷就不會混淆了。
    const int *value; //*value不可變,value可變
    int* const value; //value不可變,*value可變
    const (int *) value; //(int *)是一種type,value不可變,*value可變
              //邏輯上這樣理解,編譯不能通過,需要tydef int* NewType;
    const int* const value;//*value,value都不可變

(5)volatile

  表明某個變量的值可能在外部被改變,優化器在用到這個變量時必須每次都小心地重新讀取這個變量的值,而不是使用保存在寄存器里的備份。它可以適用于基礎類型如:int,char,long......也適用于C的結構和C++的類。當對結構或者類對象使用volatile修飾的時候,結構或者類的所有成員都會被視為volatile.
  該關鍵字在多線程環境下經常使用,因為在編寫多線程的程序時,同一個變量可能被多個線程修改,而程序通過該變量同步各個線程。
  簡單示例:
   DWORD __stdcall threadFunc(LPVOID signal)
   {
     int* intSignal=reinterpret_cast(signal);
     *intSignal=2;
     while(*intSignal!=1)
     sleep(1000);
     return 0;
   }
  該線程啟動時將intSignal 置為2,然后循環等待直到intSignal 為1 時退出。顯然intSignal的值必須在外部被改變,否則該線程不會退出。但是實際運行的時候該線程卻不會退出,即使在外部將它的值改為1,看一下對應的偽匯編代碼就明白了:
     mov ax,signal
     label:
     if(ax!=1)
     goto label
  對于C編譯器來說,它并不知道這個值會被其他線程修改。自然就把它cache在寄存器里面。C 編譯器是沒有線程概念的,這時候就需要用到volatile。volatile 的本意是指:這個值可能會在當前線程外部被改變。也就是說,我們要在threadFunc中的intSignal前面加上volatile關鍵字,這時候,編譯器知道該變量的值會在外部改變,因此每次訪問該變量時會重新讀取,所作的循環變為如下面偽碼所示:
     label:
     mov ax,signal
     if(ax!=1)
     goto label

  注意:一個參數既可以是const同時是volatile,是volatile因為它可能被意想不到地改變。它是const因為程序不應該試圖去修改它。

(6)extern

  extern 意為“外來的”···它的作用在于告訴編譯器:有這個變量,它可能不存在當前的文件中,但它肯定要存在于工程中的某一個源文件中或者一個Dll的輸出中。


from:

http://m.shnenglu.com/cc/archive/2007/09/11/32033.html

posted on 2010-01-11 00:35 chatler 閱讀(244) 評論(0)  編輯 收藏 引用 所屬分類: C++_BASIS
<2010年4月>
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678

常用鏈接

留言簿(10)

隨筆分類(307)

隨筆檔案(297)

algorithm

Books_Free_Online

C++

database

Linux

Linux shell

linux socket

misce

  • cloudward
  • 感覺這個博客還是不錯,雖然做的東西和我不大相關,覺得看看還是有好處的

network

OSS

  • Google Android
  • Android is a software stack for mobile devices that includes an operating system, middleware and key applications. This early look at the Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.
  • os161 file list

overall

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            男人的天堂亚洲在线| 国产精品久久久久一区二区| 久久婷婷av| 久久国产精品久久久久久久久久| 亚洲一区一卡| 欧美大片va欧美在线播放| 久久国产精品黑丝| 久久综合给合久久狠狠狠97色69| 久久黄色小说| 美女黄网久久| 欧美精品在线免费| 欧美吻胸吃奶大尺度电影| 欧美日韩情趣电影| 国产乱码精品一区二区三区不卡 | 亚洲一区精彩视频| 亚洲一区二区三区久久| 久久精品视频网| 女生裸体视频一区二区三区| 欧美色图天堂网| 狠狠入ady亚洲精品| 日韩午夜精品| 亚洲欧美日韩精品久久奇米色影视 | 在线一区二区三区四区五区| 亚洲尤物在线| 久热综合在线亚洲精品| 欧美三级电影网| 国模精品娜娜一二三区| 91久久国产精品91久久性色| 亚洲自拍高清| 欧美黑人多人双交| 亚洲在线播放| 欧美精品一区二区蜜臀亚洲| 国产精品入口夜色视频大尺度| 在线观看福利一区| 欧美伊人久久久久久午夜久久久久| 欧美插天视频在线播放| 亚洲午夜精品久久久久久app| 麻豆精品视频在线观看| 国产欧美一区二区精品婷婷| 亚洲免费观看高清完整版在线观看| 久久成人羞羞网站| 亚洲少妇一区| 欧美精品首页| 一区二区三区我不卡| 午夜精品久久久久久99热| 欧美福利小视频| 久久久久www| 国产麻豆9l精品三级站| 一区二区免费在线播放| 欧美大片免费观看在线观看网站推荐 | 一区二区视频在线观看| 欧美一区二区三区四区在线观看| 亚洲精品欧美专区| 欧美—级高清免费播放| 在线视频国内自拍亚洲视频| 久久青草福利网站| 欧美一区二区三区另类| 一本色道久久综合精品竹菊| 欧美精品一线| 一区二区三区精品久久久| 亚洲精品1区2区| 麻豆精品传媒视频| 影音先锋日韩精品| 久久久亚洲高清| 久久精选视频| 在线观看91精品国产入口| 美女脱光内衣内裤视频久久影院| 久久高清福利视频| 影视先锋久久| 欧美激情黄色片| 欧美激情一区二区三区高清视频| 亚洲精品久久久久久久久久久久| 女人香蕉久久**毛片精品| 欧美1区3d| 在线天堂一区av电影| 在线视频亚洲欧美| 国产婷婷97碰碰久久人人蜜臀| 久久不射中文字幕| 久久在线播放| 日韩亚洲欧美成人| 亚洲一区二区三区四区中文| 国产视频久久久久| 欧美成人一品| 欧美视频国产精品| 久久亚洲精品一区| 蜜臀久久99精品久久久久久9| 一区二区日韩伦理片| 亚洲视频你懂的| 韩国女主播一区| 最新日韩在线| 国模大胆一区二区三区| 亚洲国产高清在线观看视频| 欧美日韩中文字幕在线视频| 久久精品国产免费观看| 免费观看久久久4p| 亚洲欧美日韩一区在线| 久久精品夜夜夜夜久久| 国产精品99久久99久久久二8| 欧美一级大片在线免费观看| 亚洲理伦在线| 欧美在线亚洲综合一区| 亚洲精品国产精品乱码不99 | 国产日韩在线看| 欧美国产综合视频| 国产日韩精品久久| 亚洲精选视频在线| 国产真实乱偷精品视频免| 亚洲人在线视频| 狠狠综合久久av一区二区老牛| 亚洲国产成人av在线| 国产精品日韩一区二区| 欧美国产精品久久| 国产亚洲一区二区三区在线播放| 亚洲精品精选| 亚洲国内精品在线| 欧美中文在线视频| 亚洲欧美欧美一区二区三区| 亚洲第一区中文99精品| 一区二区三区高清在线观看| 欧美一区观看| 亚洲欧美久久久久一区二区三区| 欧美国产精品va在线观看| 久久精品99久久香蕉国产色戒| 欧美精品亚洲| 欧美成人精精品一区二区频| 国产一区二区看久久| 亚洲免费在线看| 午夜精品国产精品大乳美女| 欧美深夜福利| 日韩亚洲欧美一区二区三区| 亚洲精品乱码久久久久久久久| 久久久久国产精品一区| 国产综合色产| 欧美在线亚洲| 久久一二三四| 一色屋精品亚洲香蕉网站| 亚洲欧美www| 久久精品亚洲精品| 黄色亚洲在线| 久久免费黄色| 浪潮色综合久久天堂| 国产亚洲在线| 久久国产精品一区二区三区| 久久精品国产一区二区电影 | 亚洲精品一区二区三区99| 免费的成人av| 亚洲精品免费网站| 亚洲图片在线观看| 国产精品看片资源| 亚洲成色最大综合在线| 亚洲国产一区在线| 欧美人体xx| 一本色道久久综合亚洲精品不| 亚洲一区二区视频| 国产女主播一区| 久久成人免费电影| 欧美91精品| 日韩午夜精品视频| 国产精品久久一卡二卡| 亚洲欧美综合国产精品一区| 久久视频一区二区| 亚洲毛片一区| 国产精品永久在线| 免费久久精品视频| 一区二区精品在线| 老司机午夜精品视频| 亚洲国产天堂久久国产91| 欧美日本一区| 香蕉久久夜色精品国产| 欧美成人免费视频| 亚洲一区二区视频在线观看| 国产一区二区精品丝袜| 猛男gaygay欧美视频| 夜夜躁日日躁狠狠久久88av| 久久精品一级爱片| 夜夜嗨网站十八久久| 国产久一道中文一区| 欧美高潮视频| 性久久久久久久久久久久| 亚洲国产精品一区在线观看不卡 | 亚洲国产精品视频一区| 亚洲午夜精品久久久久久app| 久久久精品国产免费观看同学| 亚洲欧美经典视频| 欧美va日韩va| 欧美在线一级视频| 在线亚洲成人| 亚洲国产精品成人精品| 国产精品永久免费在线| 欧美日韩高清免费| 久久婷婷成人综合色| 性娇小13――14欧美| 一本色道久久综合一区| 欧美激情亚洲视频| 老牛国产精品一区的观看方式| 亚洲男人影院| 一区二区三区四区蜜桃| 亚洲国产精品123| 狠狠88综合久久久久综合网| 国产精品久久久久久久午夜片 |