函式在c 中的區別

2021-07-31 18:21:36 字數 589 閱讀 1984

c和c++的有inline c在c99中新增了inline函式

但是inline函式

作用更安全的巨集

在呼叫點展開

沒有棧針的會退

沒有符號

只能定義的標頭檔案

一些函式不能採用inline 如遞迴對次數 未知或者可變參對於引數個數未知

不產生符號。所以必須要定義在標頭檔案中

函式過載的條件

函式名相同 引數型別不同(不能根據返回值去判斷函式是否過載)

函式過載的選擇一般會選擇離自己作用域想相同的地方如果沒有再去全域性去找;

過載可以是指標可以是引用

c++多型靜多型和動多型(函式過載和模版就是靜多型)(在編譯的時候就選擇好)

動多型(虛函式)

c++的const 常量

c語言中的const 為變數

c++中的const常量編譯時被替換

const修飾的常變數不是被替換

int *const p 修飾的是 int * p不能改變可以給*p複製

int const  *p 修飾的是int *p不能被改變可以給 p複製

在c 中普通函式與 內聯函式的區別

我們都知道編譯的最終產品是可執行程式 由一組由機器語言指令組成,在執行程式時,作業系統將這些指令載入到計算機記憶體中。因此,每一組指令都有乙個特定的記憶體位址。一.普通函式的呼叫 a.當 執行到函式呼叫指令時,程式將在函式呼叫後立即儲存該指令的位址,同時將引數複製到堆疊中 b.然後跳到標記函式起點的...

char char 在c 中的區別

char是指標,char是陣列。指標和陣列是不一樣的。陣列是一系列連續的物件,而指標儲存物件的位址。例外 但在函式引數列表中,char和char是等價的。char str abc 上面的宣告建立了兩個物件 字串是乙個指標,指標指向字串常量。str會指向一塊唯讀的記憶體,記憶體裡存放著 abc 字串。...

const 在c和c 中的區別

c 中的const正常情況下是看成編譯期的常量,編譯器並不為const分配空間,只是在編譯的時候將期值儲存在名字表中,並在適當的時候折合在 中.所以,以下 include using namespace std int main for int i 0 i sizeof array sizeof a...