函數是實現代碼模組化、復用的核心機制。每個 C 程序至少包含 main() 函數,合理拆分功能到獨立函數能顯著提升可讀性與維護性。
return_type function_name(parameter_list) {
// 函數體
}
void(無返回值)/* 函數定義 */
int max(int num1, int num2) {
int result;
if (num1 > num2) result = num1;
else result = num2;
return result;
}
/* 函數聲明(通常放在頭文件或文件頂部) */
int max(int num1, int num2); // 參數名可省略:int max(int, int);
/* 調用示例 */
#include <stdio.h>
int max(int, int); // 聲明
int main() {
int a = 100, b = 200, ret;
ret = max(a, b); // 調用並接收返回值
printf("Max: %d\n", ret);
return 0;
}
輸出: Max: 200
| 方式 | 機制 | 影響實參? | 示例 |
|---|---|---|---|
| 傳值調用 | 複製實參值給形式參數 | 否 | void func(int x) |
| 引用調用 | 傳遞實參地址(指針) | 是 | void func(int *x) |
C 默認採用傳值調用。需修改實參時,傳遞指針:
void swap(int *a, int *b) {
int t = *a; *a = *b; *b = t;
}
int main() {
int x=10, y=20;
swap(&x, &y); // x=20, y=10
}
常用內置函數:strcat() 字符串連接、memcpy() 內存複製、malloc()/free() 動態內存管理、printf()/scanf() 輸入輸出等。善用標準庫避免重複造輪子。