關於C 中定義和宣告 const 引用

2021-09-24 12:34:54 字數 1333 閱讀 3364

定義和宣告:

1.定義只能有一次.宣告可以有多次.定義同時也是一次宣告.

2.定義的方式  2.1  前面無extern 關鍵字.  double pi.

2.2 前面有extern 且有初始化且在函式體外邊 才同時表示定義. extern double pi=3.14.

3.宣告的方式    extern double pi.

任何在多個檔案中使用的變數都需要有與定義分離的宣告.在這種情況下,乙個檔案含有變數的定義,使用該變數的其他檔案則包含該變數的宣告(而不是定義).

const: 

const int i=10;

要使的const變數能夠在其他檔案的資料夾中訪問,必須顯式指定它為extern.const變數預設時是定義該變數的檔案的區域性變數。正如我們現在所看到的,這樣設定預設情況的原因在於允許const變數定義的標頭檔案中。

引用:引用就是物件的另乙個名字,在實際程式中,引用主要用作函式的形式引數.

引用必須用與該引用同型別的物件初始化,初始化是指明引用指向哪個物件的唯一方法.

int ival=1024.

int &refval=ival;

const 引用

const 引用是指向const物件的引用.

const int ival=1024;

const int &refval=ival;

typedef 可以用來定義型別的同義詞

typedef double wages;

wanges hourly;

列舉:不但可以定義整數常量集,而且還把它們聚集成組.

open_modes mode1=intput; 

標頭檔案:一般包括類的定義、extern變數的宣告和函式的宣告。  

對於標頭檔案不應該含有定義這個規則,有三個例外。標頭檔案可以定義類、值在編譯時就已經知道的const物件和inline函式。這些實體可以在多個原始檔中定義,只要每個原始檔中的定義是相同的。在標頭檔案中定義這些實體,是因為編譯器需要它們的定義(不只是宣告)來產生**。比如:為了產生能定義或使用類的物件的**,編譯器需要知道組成該型別的資料成員。同時還需要知道能夠在這些物件上的操作。為了能夠讓多個檔案使用相同的常量值,const變數和它的初始化式必須是每個檔案都可見的。而要使初始化可見,一般都把這樣的const變數定義在標頭檔案中,那樣的話,無論該const變數何時使用,編譯器都能夠看到其初始化式。因為const物件預設為定義它的檔案的區域性變數,所以每個包含該標頭檔案的原始檔都有了自己的const變數,其名字和值都一樣的。如果const變數不是用常量表示式初始化,那麼它就不應該在標頭檔案中定義。相反,和其他的變數一樣,該const變數應該在乙個原始檔中定義並初始化。應在標頭檔案中為它新增extern宣告,以使其能被多個檔案共享。

c 中的定義和宣告

在c 中,定義和宣告時兩個不同的概念。宣告表示告訴編譯器,有某個函式或者變數,可以再某處找到。而定義表示在 這裡建立函式或者在這裡建立變數 即會分配儲存空間。在c 裡面,用extern關鍵字來表示宣告,它表示 這只是乙個宣告,函式或者變數在檔案以外定義或者檔案後面定義 並且函式和變數的宣告有些不一樣...

C語言定義和宣告區別

1.變數的定義和宣告 c語言定義和宣告分為變數的定義和宣告和函式的定義和宣告。由於,函式是具有全域性外部特性,並且函式的定義和宣告區別是很明顯的。其宣告需要返回值型別,函式名和引數列表。而函式的定義需要函式體。所以,很容易區別函式的宣告和定義。對於變數的宣告和定義,就不是那麼明顯。通常變數定義和宣告...

C語言定義和宣告區別

c語言定義和宣告區別 1.變數的定義和宣告 c語言定義和宣告分為變數的定義和宣告和函式的定義和宣告。由於,函式是具有全域性外部特性,並且函式的定義和宣告區別是很明顯的。其宣告需要返回值型別,函式名和引數列表。而函式的定義需要函式體。所以,很容易區別函式的宣告和定義。對於變數的宣告和定義,就不是那麼明...