局部變量,塊內(nèi)的變量(函數(shù)為最大的塊)全局變量在所有函數(shù)之外(函數(shù)都可用)內(nèi)存: 代碼區(qū) 數(shù)據(jù)區(qū) 棧為局部變量 堆區(qū)為動態(tài)分配 全局數(shù)據(jù)區(qū),靜態(tài)數(shù)據(jù)區(qū) 常量區(qū),主要是字面量,內(nèi)存為只讀的。函數(shù)的形參,可以給默認值可以為形參指定默認值(從右向左),調(diào)用時可以不用傳遞參數(shù)。fact(int n,int m = 1);但是不能跳躍傳遞參數(shù),二義性!enum Sex{ MALE,FEMALE}void disp(char* name, Sex gender = MALE);函數(shù)聲明中指定了默認值,不能在定義時,再指定默認值,但可以追加默認值。fact(int , int =1); 這樣聲明沒問題。內(nèi)聯(lián)函數(shù),提高程序運行效率,調(diào)用函數(shù)時,不是調(diào)用,而是搬一份到調(diào)用處,不用進行真正函數(shù)調(diào)用,所以無開辟棧的開銷。會增加代碼的長度如果函數(shù)很復(fù)雜,不能成為內(nèi)聯(lián)函數(shù)。不支持控制結(jié)果。規(guī)定1,必須先定義,不支持函數(shù)原形。因為搬函數(shù)代碼時,是在編譯過程中進行的。比較 調(diào)用開銷 VS 執(zhí)行開銷,來判斷是否使用內(nèi)聯(lián)函數(shù),對于很簡單的函數(shù)值得內(nèi)聯(lián)。2.是否能成為內(nèi)聯(lián)函數(shù)完全有編譯程序決定3.不支持控制結(jié)構(gòu)。
主函數(shù)文件