C 函数
函數
1. 什么是函數
任何一個C語言程序都是由一個或者多個程序段(小程序)構成的 每個程序段都有自己的功能 我們一般稱這些程序段為"函數" 所以 可以說C語言程序是由函數構成的
?
2. 函數的定義
1> 定義函數的目的
將一個常用的功能封裝起來 方便以后調用
2> 定義函數的步驟
a. 明確函數作用 起一個有意義的函數名
b. 明確函數的參數和返回值
3> 格式
a. 固定格式(很多語言的函數都是這么寫的)
返回值類型 函數名(形式參數列表) {
? ? 函數體 //函數具體功能的實現代碼
}
b. 舉例
定義一個函數 計算兩個整數的和
sum(int a, int b) {
? ? int c = a + b;
}
?
3. 函數的參數
1> 形式參數: 定義函數時函數名后面中的參數 簡稱形參
2> 實際參數: 調用函數時傳入的具體參數 簡稱實參
3> 實參個數必須等于形參個數
4> 函數體內部不能定義和形參一樣的變量
5> 如果是基本數據類型作為函數參數 純粹是值傳遞 修改函數內部形參的值 并不會影響外面實參的值
6> 一個函數可以沒有形參 也可以有
?
4. 函數的返回值
1> return的作用
a. 退出函數
b. 返回一個具體值給函數調用者
2> return的注意
a. void可以省略return
b. 可以多次使用return
c. return后面不能有其他語句
3> 函數的弱語法
a. 如果沒有寫返回值類型 默認是int
b. 如果寫了返回值 可以不返回
?
5. 函數注意
1> 默認情況下 C語言不允許兩個函數的名稱一樣(就算形參列表不一樣也是不行的)
2> 不能嵌套定義函數
3> 死循環調用 自己調用自己
4> 不能重復定義 可以重復聲明
5> 如果有函數的聲明 沒有函數的定義
a. 編譯可以通過 因為編譯器只會檢測語法合不合理 并不會檢測函數有沒有定義
b. 鏈接報錯 因為鏈接的時候會檢測函數是否定義
6> main函數的返回值: 0 正常退出, 1 異常退出
7> printf函數的返回值: 字符串常量的字符數 并不是字數(1個漢字占據3個字符)
?
6. .h文件和.c文件的分工
1> 單文件的壞處
一個文件的內容太多 不利于閱讀 調試
多人修改同一個文件出問題
公司里面是團隊合作
2> 抽取步驟總結
.c文件寫函數的定義
.h文件寫函數的聲明
要想用我的函數 請包含我的.h文件
?
7. #include
1>? 作用: 拷貝右邊文件的所有內容到#include所在的位置
2> 自定義的文件用"" 系統自帶的文件用<>
?
轉載于:https://www.cnblogs.com/huangyi-427/p/4728427.html
總結
- 上一篇: JS学习笔记-1--基本知识和注意事项
- 下一篇: kendo grid输入框验证方法