亚洲一级免费看,特黄特色大片免费观看播放器,777毛片,久久久久国产一区二区三区四区,欧美三级一区二区,国产精品一区二区久久久久,人人澡人人草

C語(yǔ)言

C語(yǔ)言中static和extern的區(qū)別

時(shí)間:2025-02-27 22:29:51 C語(yǔ)言 我要投稿
  • 相關(guān)推薦

C語(yǔ)言中static和extern的區(qū)別

  導(dǎo)語(yǔ):由于變量的聲明可以有多次,但定義只能有一次,這就不可避免地要使用extern,static關(guān)鍵字。弄清楚這幾個(gè)關(guān)鍵字之間的用法和區(qū)別,能節(jié)省很多調(diào)試項(xiàng)目的時(shí)間,尤其是對(duì)于一些難以定位的鏈接錯(cuò)誤。下面是C語(yǔ)言中static和extern的區(qū)別,一起來(lái)學(xué)習(xí)下吧:

  static:

  一、在C中,static主要定義全局靜態(tài)變量、定義局部靜態(tài)變量、定義靜態(tài)函數(shù)。

  1、定義全局靜態(tài)變量:在全局變量前面加上關(guān)鍵字static,該全局變量變成了全局靜態(tài)變量。全局靜態(tài)變量有以下特點(diǎn)。

  a.在全局區(qū)分配內(nèi)存。

  b.如果沒有初始化,其默認(rèn)值為0.

  c.該變量在本文件內(nèi)從定義開始到文件結(jié)束可見。

  2、定義局部靜態(tài)變量:在局部變量前面加上關(guān)鍵字static,其特點(diǎn)如下:

  a.該變量在全局?jǐn)?shù)據(jù)區(qū)分配內(nèi)存。

  b.它始終駐留在全局?jǐn)?shù)據(jù)區(qū),直到程序運(yùn)行結(jié)束。

  c. 其作用域?yàn)榫植孔饔糜,?dāng)定義它的函數(shù)或語(yǔ)句塊結(jié)束時(shí),其作用域隨之結(jié)束。

  3、定義靜態(tài)函數(shù):在函數(shù)返回類型前加上static關(guān)鍵字,函數(shù)即被定義為靜態(tài)函數(shù),其特點(diǎn)如下:

  a.靜態(tài)函數(shù)只能在本源文件中使用

  b.在文件作用域中聲明的inline函數(shù)默認(rèn)為static類型

  二、在C++中新增了兩種作用:定義靜態(tài)數(shù)據(jù)成員或靜態(tài)函數(shù)成員。

  定義靜態(tài)數(shù)據(jù)成員。

  a.內(nèi)存分配:靜態(tài)數(shù)據(jù)成員在程序的全局?jǐn)?shù)據(jù)去分配。

  b.初始化和定義:靜態(tài)數(shù)據(jù)成員定義時(shí)要分配空間,所以不能在類聲明中定義。

  靜態(tài)數(shù)據(jù)成員因?yàn)槌绦蛞蚤_始運(yùn)行就必須存在,所以其初始化的最佳位置在類的內(nèi)部,public、protected、private關(guān)鍵字對(duì)它的限定和普通數(shù)據(jù)成員一樣,因?yàn)槠淇臻g在全局?jǐn)?shù)據(jù)分配,屬于所有本類的對(duì)象共享。它不屬于特定的類對(duì)象,在沒產(chǎn)生類對(duì)象時(shí),其作用域可見,即沒有產(chǎn)生類的實(shí)例時(shí),就可以操作它了。

  靜態(tài)成員函數(shù)。靜態(tài)成員函數(shù)與類相聯(lián)系,不與類的對(duì)象相聯(lián)系。靜態(tài)成員函數(shù)不能訪問非靜態(tài)數(shù)據(jù)成員。

  extern:

  extern可以置于變量或函數(shù)前,以在別的文件中標(biāo)識(shí)變量或函數(shù)的定義,并提示編譯器遇到此變量或函數(shù)時(shí)在其他模塊中尋找其定義。extern是C、C++語(yǔ)言中表明函數(shù)和全局變量作用范圍(可見性)的關(guān)鍵字。

  對(duì)于extern變量來(lái)說(shuō),僅僅是一個(gè)變量的聲明,其并不是定義,不會(huì)分配內(nèi)存空間。

  extern表示將變量或函數(shù)聲明為外部鏈接,變量默認(rèn)是內(nèi)部鏈接,函數(shù)默認(rèn)是外部鏈接。因此用來(lái)外部鏈接的函數(shù),聲明時(shí)有無(wú)extern都可以連接通過(guò)。而全局變量則不行。通常,在模塊的頭文件中,對(duì)本模塊提供給其他模塊引用的函數(shù)和全局變量以關(guān)鍵字extern聲明。


【C語(yǔ)言中static和extern的區(qū)別】相關(guān)文章:

C語(yǔ)言中的static和extern關(guān)鍵字的作用06-19

C語(yǔ)言中Static和Const關(guān)鍵字的作用09-23

C語(yǔ)言中char*和char[]用法區(qū)別09-04

c語(yǔ)言中bit和sbit的區(qū)別哪些10-19

C語(yǔ)言中堆和棧的區(qū)別有哪些08-12

c語(yǔ)言中單引號(hào)和雙引號(hào)的區(qū)別07-03

C語(yǔ)言中Sizeof與Strlen的區(qū)別與聯(lián)系09-02

C語(yǔ)言中指針與數(shù)組的區(qū)別10-09

在C語(yǔ)言中函數(shù)調(diào)用方式的區(qū)別09-01