第一个程序
目标不是背语法,而是建立完整闭环:输入代码 → 编译 → 运行 → 看到输出。看到 Hello 的那一刻,你就跨过了新手最难关。
1. 完整例子(请完整输入一遍)
C
| 1 | #include <stdio.h> |
| 2 | |
| 3 | int main(void) { |
| 4 | printf("Hello, Embedded World!\n"); |
| 5 | return 0; |
| 6 | } |
2. 概念:每一行在干什么
| 行 | 含义 | 类比 |
|---|
| #include | 引入标准输入输出声明 | 向图书馆借《printf 使用说明》 |
| int main(void) | 程序入口 | 公司大门 |
| printf(...) | 向屏幕打印字符串 | 对喇叭说话 |
| \n | 字符串里的换行 | 按回车 |
| return 0 | 向操作系统汇报成功结束 | 下班打卡「正常」 |
3. 逐行拆解
- 第 1 行:stdio = standard input/output。没有它,编译器不认识 printf(或只给警告)。
- 第 3 行:main 返回类型 int;void 表示不接收参数。程序从 main 开始跑。
- 第 4 行:printf 是函数;双引号里是要打印的字符串;\n 让光标换到下一行。
- 第 5 行:return 0 把整数 0 交回给操作系统,通常表示成功。
4. 跟着改:三个小实验
C
| 1 | /* 实验 A:改文字 */ |
| 2 | printf("我是嵌入式新手\n"); |
| 3 | |
| 4 | /* 实验 B:打印多行 */ |
| 5 | printf("第一行\n"); |
| 6 | printf("第二行\n"); |
| 7 | |
| 8 | /* 实验 C:打印数字(格式符后面细讲) */ |
| 9 | printf("num = %d\n", 42); |
每改一次都重新编译再运行。修改 → 重编 → 看变化,是学习语法最快的方法。
5. 常见报错与原因
| 报错线索 | 可能原因 | 怎么改 |
|---|
| printf 未声明 | 没 #include | 加上头文件 |
| missing ; | 漏分号 | 语句末尾补 ; |
| undefined reference main | 没写 main 或写错名字 | 检查是否 int main |
| 中文乱码 | 编码不一致 | 源文件 UTF-8,必要时先改英文测试 |
6. 你可能好奇的细节(可先跳过)
- 为什么用 \n 而不是直接敲回车?因为在字符串里,换行要写成转义 \n
- return 0 一定要写吗?在 main 里现代编译器常允许省略,但养成写返回值的习惯更好
- void 能改成空 int main() 吗?可以,风格不同而已
7. 动手练习
- 写一个程序,打印你的名字、年龄(先当字符串打印)
- 打印三行:爱好 1 / 爱好 2 / 目标
- 故意删掉一个分号,看报错长什么样,再改回来——认识错误也是学习