//函式過載之名字修飾
#if 0
#includeusing namespace std;`在這裡插入**片`
int add(int a, int b)
double add(double a, double b)
int main()
#endif
//1、名字修飾
//在c語言中,名字修飾只是在函式名前加下劃線,所以只要函式名相同,就會導致衝突。
//在c++中,名字修飾是由「 ? 函式名@網域名稱1@網域名稱2...@@引數列表@z」的格式構成的,包含:
//a、函式名
//b、所在域
//c、引數列表
//所以c++中,以上三個必須完全相同,才會出現衝突,這就是函式過載的原理
#if 0
#includeusing namespace std;
extern "c"
}int main()
#endif
//2、extern "c"
//使用extern "c"修飾乙個語句或者將一段**包起來,那麼這條語句或這段**將會以c語言的風格進行編譯
#includeusing namespace std;
int& testrefreturn(int& z)//做返回值
void swapaargs(int &x,int &y)//做引數
int main()
inline int &func2(int &a)
inline int *func3(int * pa)
int main()
//二、內聯函式
//呼叫時不建立新棧而直接在呼叫處展開的函式叫內聯函式,關鍵字為inline。
//內聯函式是乙個對編譯器的建議,如果函式過於複雜,編譯器會不接受你的建議,而處理成普通的函式。
//inline函式可以代替帶參巨集``
#include#include using namespace std;
int main()
三、auto(c++11)
auto是乙個型別修飾符,他會根據你給變數初始化的值的型別來決定自己是什麼型別
auto定義的變數必須初始化,否則不知道auto是什麼型別
auto可以連續定義變數,型別由第乙個定義的變數決定,後續不能違背這個型別,但是可以定義對應型別的指標和引用
auto不能做函式的引數型別
auto不能參與陣列的型別
c++11後,auto會失去原本的含義
C語言初階攻略 二
一入 深似海,從此妹紙是路人.前面為大家做了一些簡單的介紹,這部分會帶來一些語句和關鍵字等.一 選擇語句 主要是根據判斷條件,不同的觸發條件觸發不同的結果.比如 如果下雨,就需要打傘,不下雨也就不需要打傘了.二 迴圈語句 while 條件 for 迴圈語句 do.while迴圈語句 三 函式 函式可...
C 模板初階
template typename t void swap t left,t right intmain 在編譯器編譯階段,對於模板函式的使用,編譯器需要根據傳入的實參型別來推演生成對應型別的函式以供呼叫。比如 當用double型別使用函式模板時,編譯器通過對實參型別的推演,將t確定為double型...
C 模板初階
1.4普通函式和函式模板的區別 1.5普通函式和模板函式的呼叫規則 2.類模板 c 中的另一種程式設計思想成為泛型程式設計 編寫與型別無關的通用 是 復用的一種手段 主要利用的技術就是模板。c 中提供兩種模板機制 函式模板和類模板 函式模板代表了乙個函式家族,該函式模板與型別無關,在使用時被引數化,...