c 相對於C提供的新的函式特性

2022-03-14 19:17:36 字數 1053 閱讀 8164

新特性包含 內聯函式、按引用傳遞變數、預設的引數值、函式過載(多型) 以及模板函式。

內聯函式:是c++為了提高程式執行速度所做的一項改進。常規函式與內聯函式的區別不在於編寫方式,而在與c++編譯器如何將他們組合到程式中。

程式執行函式呼叫指令時,程式將在函式呼叫後立即儲存該指令的記憶體位址,並將函式引數複製到堆疊(為此保留的記憶體塊),跳到標記函式起到的記憶體單元,執行函式**(也許還需將返回值放入到暫存器中),然後調回到位址被儲存的指令處。來回跳躍並記錄跳躍位置需要一定的開銷。

內聯函式的編譯**與其他程式**「內聯」起來了。即:編譯器使用相應的函式**替換函式呼叫。 程式無需跳轉,但是代價是:需要更多的記憶體。 如果程式在10個不同的地方呼叫同乙個內聯函式,改程式將包含該函式的10個**拷貝。

如果執行函式**的時間比處理函式呼叫機理的時間長,則所節省的時間很少,則不選擇內聯函式。通常,如果函式定義占用多行,則將其作為內聯函式就不太合適。

在函式宣告和定義前新增: inline。

引用變數:引用是已定義的變數的別名。 引用變數的主要用途是用作函式的引數,通過將引用變數用作引數,函式將使用原始資料,而不是拷貝。 

引用與指標的差別:必須在宣告引用時將其初始化。而不像指標那樣,先宣告,再賦值。 引用一旦被初始化,便不能改變其指向。、

引用經常被用作函式引數,是的函式中的變數名成為呼叫程式中的變數的別名,這種傳遞引數的方法稱為按引用傳遞。c++新增的這項特性是對c的超越,c只能按值傳遞。

臨時變數、引用引數和const:如果實參與引用引數不匹配,c++將生成臨時變數。現在,僅當引數為const引用時,c++才允許這樣做,但這是一種新的限制。

應盡可能使用const:將引用引數宣告為常量資料的引用的理由有3條:

使用cosnt 可以避免無意中修改資料的程式設計錯誤

使用const 使函式能夠處理const 和非const型別實參,否則只能接受非const 資料。

使用const 引用使函式能夠正確生成並使用臨時變數。

引用非常適合用於結構和類。

是否應使用引用的兩個依據:程式設計師能夠修改呼叫函式中的資料物件;通過傳遞引用而不是整個資料物件,可以提高程式的執行速度。

C 相對於C的增強

1.c 更嚴格的語法 更嚴格的型別轉換 更嚴格的語法 更嚴格的型別轉換 c 不同型別的變數一般不能直接賦值,需要相應的強制轉換 新增 bool 型別,有 true false,乙個位元組 2.struct型別增強 c 中定義結構體變數不必加 struct 且可以定義成員函式 struct a a 變...

C 相對於C的兩種新的內建型別

在c語言提供的字元 整型 浮點型 指標 陣列 結構和列舉等幾類型別的基礎上,c 又新增了兩類基本型別,分別為布林型和引用型別。c語言中沒有明確地提供布林型別,布林型別的實現往往是通過巨集定義或型別定義實現。c 為邏輯運算提供了單獨的布林型別 bool 可以具有值true或false之一,其中true...

2 c 相對於c 的增強。

includeusing namespace std brief main return 1 實用性增強 2 c語言的定義必須在作用於開始的地方定義。3 c 更加強調語句的實用性。所有的變數可以在使用的時候再定義。int main11 1 register 關鍵字增強。請求編譯器讓a直接放在暫存器中...