6 1 函式基礎

2022-09-22 03:54:05 字數 1844 閱讀 7232

目錄6.1.2 函式的宣告

6.1.3 分離式編譯

變數型別

作用域生命期

初始化全域性物件

整個程式

整個程式

預設初始化

自動物件

塊作用域

宣告時自動建立,出作用域後自動銷毀

預設初始化

區域性靜態物件

塊作用域

整個程式

值初始化

//舉例: 用區域性靜態變數統計某函式的呼叫次數

#includeusing namespace std;

int cout_calls()

int main()//輸出:0、1、2、......、10

在工程專案中,函式宣告最好包含在標頭檔案中

看起來把函式的宣告直接放在使用該函式的原始檔中是合法的,也比較容易被人接受;但是這麼做可能會很煩瑣而且容易出錯。相反,如果把函式宣告放在標頭檔案中,就能確保同一函式的所有宣告保持一致。而且一旦我們想改變函式的介面,只需改變一條宣告即可。

分離式概念隨著程式越來越複雜,我們希望把程式的各個部分分別儲存在不同檔案中。為了允許編寫程式時按照邏輯關係將其劃分開來,c++語言支援所謂的分離式編譯(separate compilation)。分離式編譯允許我們把程式分割到幾個檔案中去,每個檔案獨立編譯。

./a.exe:執行a.exe

舉個例子,假設fact函式的定義位於乙個名為fact.cpp的檔案中,它的宣告位於名為fact.h的標頭檔案中。顯然與其他所有用到fact函式的檔案一樣,fact.cpp應該包含fact.h標頭檔案。另外,我們在名為factmain.cpp的檔案中建立main函式,main函式將呼叫fact函式。要生成可執行檔案(executable file),必須告訴編譯器我們用到的**在**。

生成可執行檔案a.exe

g++ fact.o factmain.o

執行a.exe./a.exe

第6章 6 1 函式基礎

6.1.2 函式宣告 乙個典型的函式定義包括以下幾個部分 返回型別 函式名字 由0個或多個形參組成的列表以及函式體。其中,形參以逗號隔開,形參列表位於一對圓括號之內。函式的呼叫完成兩項工作 1 用實參初始化函式對應的形參 2 將控制權轉移給被調函式。此時主調函式的執行被中斷,被調函式開始執行。舉個例...

第六章 函式 6 1 函式基礎

函式是乙個命名了的 塊,我們通過呼叫函式執行相應的 函式可以有 0 個或多個引數,而且 通常 會產生乙個結果。可以過載函式 同乙個名字可以對應幾個不同的函式 乙個典型的函式 function 定義包括以下幾個部分 編寫函式 val 的階乘是 val val 1 val 2 val val 1 1 i...

基礎61 稀疏矩陣

61 稀疏矩陣 問題描述 今天明明學到了什麼叫做矩陣,但他發現要將乙個矩陣輸入進電腦是一件很麻煩的事。特別是有些矩陣很大,且大部分元素都是0,我們稱這類矩陣為稀疏矩陣。於是,明明發明了一種簡單的表示方法,只指出矩陣中非零元素來表示該矩陣。例如乙個矩陣 0 0 0 5 2 0 0 0 0 1 0 0 ...