先预测
读代码前先猜运行结果,写下理由;如果猜错了,恰好找到最值得学的地方。
Foundation / C language
C 语言会一路陪你走到 STM32。从第一个程序开始,逐步认识数据、运算、分支和循环,再学习函数、数组、指针、结构体与位运算。
第 01–11 课已开放 · 建议按顺序学习,练习后再前进
#include <stdio.h>
int main(void)
{
printf("Hello, world!\n");
return 0;
}
Course map
从编译运行走向指针与位操作。每节课包含示例、解释、排错与练习。
创建 hello.c,逐行理解代码,用 GCC 编译、运行并主动读一次报错。
让程序保存测量值;学习声明、初始化、输出格式,以及类型大小为什么要实测。
完成信号:能安全地修改变量,并解释输出格式与实际类型的关系。 03 / 已开放验证算术运算、整数除法、余数、类型转换和运算顺序。
完成信号:预测结果并说出除法和类型的条件。 04 / 已开放用比较、逻辑表达式和条件语句表达选择,检查边界与输入。
完成信号:用边界值解释每条分支。 05 / 已开放使用 for、while 和 do/while 处理重复任务,检查起点与终点。
完成信号:跟踪循环状态,避免多一次或少一次。 06 / 已开放使用函数声明、参数和返回值,把计算拆成明确的小任务。
完成信号:解释调用过程及按值传递。 07 / 已开放保存与遍历一组数据,认识下标、终止符和缓冲区边界。
完成信号:写出合法下标和字符串所需容量。 08 / 已开放理解 .h 与 .c 分工,编译链接并用 GDB 观察程序。
认识对象地址、指针与解引用,理解空指针、数组传参和生命周期。
完成信号:画出变量与指针的关系并安全地修改值。 10 / 已开放把相关数据组织成结构体,用枚举表示状态并理解成员访问。
完成信号:解释结构体传参、状态与平台布局差异。 11 / 已开放用无符号变量模拟标志位,练习设置、清除、翻转和检测。
完成信号:解释掩码、移位边界及硬件寄存器的特殊语义。How to learn
读懂解释只是开始,真正的完成证据是你改过代码、看过结果,也能说清为什么。
读代码前先猜运行结果,写下理由;如果猜错了,恰好找到最值得学的地方。
输入并编译自己的文件。只改一处,重新编译,再对照终端输出。
不用照抄课文,能用自己的话解释关键代码和报错,才进入下一课。