奶头挺立呻吟高潮av全片,成人试看120秒体验区,性欧美极品v,A片高潮抽搐揉捏奶头视频

C語言

C語言中static和extern的區別

時間:2024-10-01 00:55:20 C語言 我要投稿
  • 相關推薦

C語言中static和extern的區別

  導語:由于變量的聲明可以有多次,但定義只能有一次,這就不可避免地要使用extern,static關鍵字。弄清楚這幾個關鍵字之間的用法和區別,能節省很多調試項目的時間,尤其是對于一些難以定位的鏈接錯誤。下面是C語言中static和extern的區別,一起來學習下吧:

  static:

  一、在C中,static主要定義全局靜態變量、定義局部靜態變量、定義靜態函數。

  1、定義全局靜態變量:在全局變量前面加上關鍵字static,該全局變量變成了全局靜態變量。全局靜態變量有以下特點。

  a.在全局區分配內存。

  b.如果沒有初始化,其默認值為0.

  c.該變量在本文件內從定義開始到文件結束可見。

  2、定義局部靜態變量:在局部變量前面加上關鍵字static,其特點如下:

  a.該變量在全局數據區分配內存。

  b.它始終駐留在全局數據區,直到程序運行結束。

  c. 其作用域為局部作用域,當定義它的函數或語句塊結束時,其作用域隨之結束。

  3、定義靜態函數:在函數返回類型前加上static關鍵字,函數即被定義為靜態函數,其特點如下:

  a.靜態函數只能在本源文件中使用

  b.在文件作用域中聲明的inline函數默認為static類型

  二、在C++中新增了兩種作用:定義靜態數據成員或靜態函數成員。

  定義靜態數據成員。

  a.內存分配:靜態數據成員在程序的全局數據去分配。

  b.初始化和定義:靜態數據成員定義時要分配空間,所以不能在類聲明中定義。

  靜態數據成員因為程序以開始運行就必須存在,所以其初始化的最佳位置在類的內部,public、protected、private關鍵字對它的限定和普通數據成員一樣,因為其空間在全局數據分配,屬于所有本類的對象共享。它不屬于特定的類對象,在沒產生類對象時,其作用域可見,即沒有產生類的實例時,就可以操作它了。

  靜態成員函數。靜態成員函數與類相聯系,不與類的對象相聯系。靜態成員函數不能訪問非靜態數據成員。

  extern:

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

  對于extern變量來說,僅僅是一個變量的聲明,其并不是定義,不會分配內存空間。

  extern表示將變量或函數聲明為外部鏈接,變量默認是內部鏈接,函數默認是外部鏈接。因此用來外部鏈接的函數,聲明時有無extern都可以連接通過。而全局變量則不行。通常,在模塊的頭文件中,對本模塊提供給其他模塊引用的函數和全局變量以關鍵字extern聲明。


【C語言中static和extern的區別】相關文章:

c語言中bit和sbit的區別哪些10-19

C語言中堆和棧的區別有哪些08-12

c語言中單引號和雙引號的區別07-03

C語言中指針與數組的區別10-09

在C語言中函數調用方式的區別09-01

C語言中Sizeof與Strlen的區別與聯系09-02

淺談Java語言中static的作用08-10

C語言中單引號與雙引號的區別06-16

C語言中的指針和內存泄漏08-07

C語言中的BYTE和char字符08-06

主站蜘蛛池模板: 日喀则市| 芜湖市| 邵东县| 资源县| 靖州| 鹤峰县| 白沙| 杭州市| 吉安市| 博罗县| 惠东县| 烟台市| 文登市| 马山县| 洪江市| 汕尾市| 平顶山市| 龙川县| 海南省| 小金县| 聂拉木县| 安康市| 和田市| 隆子县| 射洪县| 云安县| 丰城市| 五家渠市| 中卫市| 惠水县| 福泉市| 嘉兴市| 肥乡县| 麻江县| 鲜城| 营山县| 星子县| 文化| 开鲁县| 蓝田县| 林州市|