c c 關鍵字,相互呼叫

2021-09-25 15:15:18 字數 2286 閱讀 5619

一、函式過載:

在同乙個作用域中,如果有多個函式的名字相同,同乙個作用域,但是形參列表不同(引數型別不同或引數個數不同),返回值型別可同也可不同,我們稱之為過載函式。過載的函式是通過形參列表區分的,與返回值型別無關。函式過載其實是"乙個名字,多種用法"的思想,不僅函式可以過載,函式過載就是重定義;覆蓋是重寫。

二、new和malloc的區別:

1.new關鍵字 malloc函式

2.new自由儲存區域 malloc堆上

3.new malloc

operator new

constructor

還可以做初始化 malloc 單純開闢內容

4.new可以過載 malloc不能過載

5.new可以呼叫malloc malloc不能呼叫new

6.記憶體開闢 new拋異常 malloc返回null

7.new可以開闢常量 malloc不能

三、c和c++中的const

1、const修飾變數

const修飾變數,可以使變數具有常屬性,也就是該變數在以後的使用中其值都不能 進行改變。(要進行初始化)

2、const修飾指標

int *const p // p不可以變,p指向的值可以變

int const *p // p可以變,p指向的值不可以變

3、保護函式引數不被改變

用const修身函式的引數,可以保證該引數的值在函式內部不被改變。 (一般用引用或者傳位址的方式給函式傳遞乙個引數,如果在函式體內對該引數進行修改,那麼就會連實參的值一併進行修改。)

4、const修飾函式返回值

const修飾函式的返回值,防止函式的返回值被修改,但是這裡要注意的是,必須也用 const修飾的變數來接收這個函式的返回值

5、const修飾類成員函式

const可以修飾類成員函式,防止類成員函式中除了static成員之外的其他成員被修改。

6、const修飾類的成員變數

類的成員變數可以分為靜態的和非靜態的,如果const修飾的是靜態的成員變數,可以在建構函式中對該變數進行初始化;如果const修飾的是靜態的成員變數,則需要在類外對該變數進行初始化。

四、引用:

1、引用是乙個別名(底層以指標做支援)

2、引用一定要初始化

3、引用不能引用取位址的資料

4、引用不能改變

5、引用變數 只能使用 引用變數 所有引用的資料

五、inline函式:

編譯階段 在**的呼叫點直接**展開

inline函式和static修飾的函式的區別

1.inline函式 無開棧和清棧開銷

static 有

2.inline 在呼叫點直接**展開

static 函式符號屬性 l

3、inline函式和巨集的區別

inline 編譯 型別檢查 和 安全檢查

巨集 預編譯 無

inline是乙個更安全的巨集

4、注意事項

實現在.**件

只在release版本生效

給編譯器的乙個建議 遞迴 迴圈 switch

基於實現,不是宣告

5、inline缺點

以**膨脹為代價 空間換時間

6、建議

開棧的開銷 > 執行的開銷 建議設為inline

開棧的開銷 < 執行的開銷 不建議

六、函式的預設值:

1.自右向左依次賦予

2.不能重複賦予

3.一般賦在宣告上

七、c/c++互相呼叫

1.c++呼叫c

c++原始檔 extern 「c」

2.c呼叫c++

c++原始檔可修改 extern 「c」

c++原始檔不可修改 加中間層 .cpp

3.不明確編譯器

#ifdef __cplusplus

八、static:

1、對於非靜態資料成員,每個類物件都有自己的拷貝。而靜態資料成員被當作是類的成員。無論這個類的物件被定義了多少個,靜態資料成員在程式中也只有乙份拷貝,由該型別的所有物件共享訪問。

2 、靜態資料成員儲存在全域性資料區。定義時要分配空間,所以不能在類宣告中定義。由於靜態資料成員屬於本類的所有物件共享,所以,它不屬於特定的類物件,在沒有產生類物件時其作用域就可見,即在沒有產生類的例項時,程式設計師也可以使用它。

3、 靜態資料成員和普通資料成員一樣遵從public,protected,private訪問規則;

4 、static成員變數的初始化是在類外,此時不能再帶上static的關鍵字private,protected 的static成員雖然可以在類外初始化,但是不能在類外被訪問。

extern關鍵字及C C 相互呼叫

extern關鍵字主要修飾變數或函式,表示該函式可以跨檔案訪問,或者表明該變數在其他檔案定義,在此處引用。1.extern修飾變數 1 如果某變數int m在a.c中定義宣告,則其他b.c檔案訪問時,需要用extern宣告該變數才可以。注意extern的嚴格宣告,如在乙個檔案中宣告char a ab...

C C 之間的相互呼叫

c呼叫c 意思是 c檔案中呼叫.cpp檔案中的 c 呼叫c的意思是.cpp檔案中呼叫.c檔案中的 使用extern c 主要原因 主要用於在c 中呼叫的c函式的宣告,或c 中編譯的函式要在c中呼叫,也即是匯入c形式的函式庫或者提供c型別的庫給c呼叫,因為在c 出現以前,很多 都是c語言寫的,而且很底...

C C 寫的WebService相互呼叫

首先感謝永和兄提供c 的webservice伺服器端及客戶端,並且陪我一起熬夜 然後是火石和我做介面的兄弟,雖然都不知道你叫什麼,如果沒有你的合作,東西也沒那麼快完成。一 由於公司運營火石的 西遊q記 火石採用的是c 作為開發語言,unix平台,而我們一直使用windows操作平台,net快速開發。...