淺談函數應用
函數存在的意義:
把main函數中複雜的邏輯進行拆分,由一個一個單獨的函數來處理一個單獨的模塊,main函數只是起到宏觀調控作用
我們可以自己編寫一些函數,實現某些功能,把函數的聲明放在.h文件裏,把函數的定義即實現放在.m文件裏,然後在main.m文件裏的main函數裏調用實現,但是調用之前一定不要忘記把自己寫的文件導入即導入頭文件,導入自己編寫的頭文件用#import "",導入系統頭文件用#import <>
此外,一個函數最多不要超過60行代碼,20 到 40行最好,一個文件裏代碼行數最多最好不要超過300行,如果過多了不太好找
2, 函數的定義 : 包含四部分
1), 返回值類型 (要返回的數據類型)
2), 函數名 (給函數起一個名字用於唯一標識函數) 命名規範: 有多個單詞組成,除了第一個單詞外,其餘 單 詞首字母大寫 (工程名 也由單詞組成,並且每個單詞首字母都應該大寫)
3), 參數列表 (用來接收傳入的數據)
4), 函數體 (函數真正的功能,實際做的操作)
3, 函數的使用分爲三部分
1), 函數的聲明, (寫在.h文件中)
2), 函數定義, (函數的實現)(寫在.m文件中)
3), 函數的調用, (在main.m文件中的main函數中實現調用)
函數聲明和函數定義相比,只是缺少了函數體,並且在最後加了分號
爲了更清晰: 一個函數用來實現一個單獨的功能,在函數內部只寫與函數功能有關的代碼即可
4, 函數定義有四種格式:
1), 函數定義的第一種格式: 無參數,無返回值 (無返回值時用void)
void like ()
{
printf("I like learning ios \n");
}
2), 函數定義的第二種格式: 有參數,無返回值 (無返回值時用void)
3), 函數定義的第三種格式: 無參數,有返回值 有返回值時
int giveMoney()
{
printf("繼續加油,\n");
return 100;
}
return 用於返回值,將返回的數據放在return後面, 誰調用該函數,就將該值返回給誰
切記不要把代碼放在return後面,會執行不到
4), 函數定義的第四種格式: 有參數,有返回值
5, 實參 與 形參
實參是實際參數,真實的具體的值,即函數調用時給定的參數叫做實參
形參是形式參數,只用來表示接收什麼類型的數據,具體的存儲數據未知,即在函數定義時給定的參數是形參
此外切記函數調用時,實參到形參的傳遞是一個拷貝的過程, 函數與函數之間可嵌套調用,但不可以嵌套定義;
6, 有關變量的作用域
在函數內部定義的變量,只能在函數內部有效,在函數外部,無權訪問,所以叫局部變量,(當函數調用時,爲變量開闢空間,當函數執行完畢宏,系統回收空間
全局變量,在所有函數中都可以訪問到,程序運行期間空間不收回
被static修飾的變量,爲靜態變量,其特點爲:
1), 空間只開闢一次,而且在雲期間空間不回收
2), 變量只初始化一次
3), 如果不賦初值,默認爲0;