在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

您好,歡迎來(lái)電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊(cè)]

您的位置:電子發(fā)燒友網(wǎng)>源碼下載>C/C++語(yǔ)言編程>

C語(yǔ)言static和extern使用方法的介紹

大小:0.1 MB 人氣: 2017-11-21 需要積分:0

 一.變量

  對(duì)于變量來(lái)說(shuō),

  (1)extern int a;//聲明一個(gè)全局變量a,

  (2)int a; //定義一個(gè)全局變量a,

  (3)extern int a =0 ;//定義一個(gè)全局變量a 并給初值,

  (4)int a =0;//定義一個(gè)全局變量a,并給初值。

  上述4種情形,(3)與(4)等同。

  定義只能在一處出現(xiàn),但聲明可以在多處出現(xiàn)。也就是說(shuō),不管是int a;還是extern int a=0;還是int a=0;都只能出現(xiàn)一次,而extern int a可以出現(xiàn)很多次。

  當(dāng)你要引用一個(gè)全局變量的時(shí)候,你就要聲明,extern int a;這時(shí)候extern不能省略,因?yàn)槭÷粤耍妥兂蒳nt a;這是一個(gè)定義,不是聲明。

  二.函數(shù)

  對(duì)于函數(shù)來(lái)說(shuō),定義的時(shí)候用extern,說(shuō)明這個(gè)函數(shù)是可以被外部引用的,聲明的時(shí)候用extern說(shuō)明這是一個(gè)聲明。但由于函數(shù)的定義和聲明是有區(qū)別的,定義函數(shù)要有函數(shù)體,聲明函數(shù)沒有函數(shù)體,所以函數(shù)定義和聲明時(shí)都可以將extern省略掉,反正其他文件也是知道這個(gè)函數(shù)是在其他地方定義的,所以不加extern也行。

  總結(jié):

  1)對(duì)變量而言,如果你想在本源文件中使用另一個(gè)源文件的變量,就需要在使用前用extern聲明該變量,或者在頭文件中用extern聲明該變量;

  2)對(duì)函數(shù)而言,如果你想在本源文件中使用另一個(gè)源文件的函數(shù),就需要在使用前用聲明該變量,聲明函數(shù)加不加extern都沒關(guān)系,所以在頭文件中函數(shù)可以不用加extern。

  第二章 static使用方法

  一. 全局靜態(tài)變量

  在全局變量之前加上關(guān)鍵字static,全局變量就被定義成為一個(gè)全局靜態(tài)變量。

  1)內(nèi)存中的位置:靜態(tài)存儲(chǔ)區(qū)(靜態(tài)存儲(chǔ)區(qū)在整個(gè)程序運(yùn)行期間都存在);

  2)初始化:未經(jīng)初始化的全局靜態(tài)變量會(huì)被程序自動(dòng)初始化為0(自動(dòng)對(duì)象的值是任意的,除非他被顯示初始化);

  3)作用域:全局靜態(tài)變量在聲明他的文件之外是不可見的,準(zhǔn)確地講,從定義之處開始到文件結(jié)尾。

  定義全局靜態(tài)變量的好處:

  《1》不會(huì)被其他文件所訪問(wèn)、修改;

  《2》其他文件中可以使用相同名字的變量,不會(huì)發(fā)生沖突。

  二.局部靜態(tài)變量

  在局部變量之前加上關(guān)鍵字static,局部變量就被定義成為一個(gè)局部靜態(tài)變量。

  1)內(nèi)存中的位置:靜態(tài)存儲(chǔ)區(qū)

  2)初始化:未經(jīng)初始化的全局靜態(tài)變量會(huì)被程序自動(dòng)初始化為0(自動(dòng)對(duì)象的值是任意的,除非他被顯示初始化)

  3)作用域:作用域仍為局部作用域,當(dāng)定義它的函數(shù)或者語(yǔ)句塊結(jié)束的時(shí)候,作用域隨

  之結(jié)束。

  注:當(dāng)static用來(lái)修飾局部變量的時(shí)候,它就改變了局部變量的存儲(chǔ)位置,從原來(lái)的棧中存放改為靜態(tài)存儲(chǔ)區(qū)。但是局部靜態(tài)變量在離開作用域之后,并沒有被銷毀,而是仍然駐留在內(nèi)存當(dāng)中,直到程序結(jié)束,只不過(guò)我們不能再對(duì)他進(jìn)行訪問(wèn)。當(dāng)static用來(lái)修飾全局變量的時(shí)候,它就改變了全局變量的作用域(在聲明他的文件之外是不可見的),但是沒有改變它的存放位置,還是在靜態(tài)存儲(chǔ)區(qū)中。

  三. 靜態(tài)函數(shù)

  在函數(shù)的返回類型前加上關(guān)鍵字static,函數(shù)就被定義成為靜態(tài)函數(shù)。函數(shù)的定義和聲明默認(rèn)情況下是extern的,但靜態(tài)函數(shù)只是在聲明他的文件當(dāng)中可見,不能被其他文件所用。

  定義靜態(tài)函數(shù)的好處:

  《1》 其他文件中可以定義相同名字的函數(shù),不會(huì)發(fā)生沖突

  《2》 靜態(tài)函數(shù)不能被其他文件所用。

非常好我支持^.^

(0) 0%

不好我反對(duì)

(0) 0%

      發(fā)表評(píng)論

      用戶評(píng)論
      評(píng)價(jià):好評(píng)中評(píng)差評(píng)

      發(fā)表評(píng)論,獲取積分! 請(qǐng)遵守相關(guān)規(guī)定!

      ?
      主站蜘蛛池模板: 国产精品亚洲四区在线观看 | 9久久99久久久精品齐齐综合色圆 | 国产精品爱久久久久久久三级 | 亚洲国产精品综合久久久 | 视频一区日韩 | 在线视频91 | 成人午夜免费视频毛片 | 色视频色露露永久免费观看 | 日本亚洲卡一卡2卡二卡三卡四卡 | 天天干天天摸天天操 | 日韩xx00| 夜色爽爽 | 白嫩美女在线啪视频观看 | 亚洲成在人色婷婷 | 成年网站在线观看 | 最新国产你懂的在线网址 | 亚洲第一毛片 | 午夜神马福利免费官方 | 爱草免费视频 | 免费香蕉视频国产在线看 | 人人看人人做 | 亚洲狠狠婷婷综合久久久久图片 | 午夜影视免费观看 | 国产精品夜夜春夜夜 | 久久亚洲国产精品五月天 | 国产98在线传媒在线视频 | 国产成人综合亚洲怡春院 | 亚洲国产成人在人网站天堂 | 成年网站在线 | 久久99热久久精品23 | 男人j桶进女人免费视频 | 国产一级aaa全黄毛片 | 91精品国产色综合久久不卡蜜 | 啪啪免费看 | 午夜寂寞影视 | www四虎影院 | 一区二区三区四区精品 | 二级黄的全免费视频 | 日韩欧美一级 | 在线激情网址 | 天天看天天干天天操 |