程序骨架
几乎所有 C 程序都像固定乐高:头文件 + (可选声明)+ main + 若干函数。先背骨架,再往里面塞内容,读陌生代码也会快很多。
1. 概念:五块拼图
- 头文件包含:stdio.h 等,提供库函数声明
- 宏/常量定义:可选,#define 或 const
- 函数声明:告诉编译器后面会有这个函数
- main:唯一入口,从上往下执行
- 函数定义:真正干活的实现
2. 完整例子(带自定义函数)
| 1 | #include <stdio.h> |
| 2 | |
| 3 | int add(int a, int b); // 声明 |
| 4 | |
| 5 | int main(void) { |
| 6 | int x = 10, y = 20; |
| 7 | int s = add(x, y); // 调用 |
| 8 | printf("sum = %d\n", s); |
| 9 | return 0; |
| 10 | } |
| 11 | |
| 12 | int add(int a, int b) { // 定义 |
| 13 | return a + b; |
| 14 | } |
3. 拆解:声明 vs 定义
- 声明(prototype):int add(int a, int b); —— 只说明长相
- 定义(definition):{ return a+b; } —— 给出实现
- 可以先声明后定义;多文件工程里声明常放 .h,定义放 .c
4. 执行顺序直觉
程序进入 main 后,语句一般自上而下。调用 add 时,控制权跳到 add,return 后回到 main 的下一行。就像你离开座位去仓库取东西,取完再回来继续办公。
5. 常见错误
- 写了两个 main → 链接错误 duplicate main
- 调用了没声明也没定义的函数 → undefined reference
- 函数声明参数类型与定义不一致 → 编译/链接问题