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