函數是可重用代碼塊,獨立完成特定功能。C 語言提供庫函數,開發者也可編寫自定義函數,二者無本質區別,僅開發者不同。
返回類型 函數名() {
// 函數體(即使只有一條語句也需 { })
return 表達式; // 非 void 必須有返回
}
int sum() {
int i, sum = 0;
for (i = 1; i <= 100; i++) sum += i;
return sum;
}
int main() {
int a = sum(); // 調用並接收返回值
printf("The sum is %d\n", a);
return 0;
}
The sum is 5050
void hello() {
printf("Hello, world!\n");
// 可無 return,或寫 return; 提前退出
}
void = 空類型,明確表示無有意義返回值返回類型 函數名(類型 形參1, 類型 形參2, ...) {
// 函數體可使用形參
return 表達式;
}
int max(int a, int b) {
if (a > b) return a;
else return b;
}
int main() {
int n = max(10, 20); // 常量實參
int x = 10, y = 20;
n = max(x, y); // 變量實參
n = max(x, 20); // 混合實參
printf("Max: %d\n", n);
return 0;
}
Max: 20
調用 max(num1, num2) 相當於: a = num1; b = num2;
return 後續代碼永不執行return 不同值returnint max(int a, int b) {
int n = (a > b) ? a : b;
return n;
printf("This never prints\n"); // 死代碼
}
main 也是函數,系統啟動時調用 main#include <stdio.h>
// 函數聲明(可選,若定義在前可省略)
int max(int a, int b);
void printResult(int val);
int max(int a, int b) { ... } // 定義 1
void printResult(int val) { ... } // 定義 2
int main() { // 主函數
// 調用上述函數
return 0;
}
calculateSum 優於 func1