C 语言
从指针、数组和内存布局出发,搞清楚一行代码在机器上到底发生了什么。
int x = 42;
int *p = &x;
printf("%d\n", *p);
/* p → x */
FOCUS AREAS
三条互相咬合的主线:向下理解内存,向外连接真实设备,向上抽象出可复用的结构。
从指针、数组和内存布局出发,搞清楚一行代码在机器上到底发生了什么。
int x = 42;
int *p = &x;
printf("%d\n", *p);
/* p → x */
让代码接触现实:从传感器读数开始,经过通信协议,最后落到一个可观测的系统。
把问题抽象成结构,比较每种操作的代价,并找到适合当前场景的那一个。
FIELD NOTES
不追求篇数,追求下一次遇到同类问题时,还能照着做出来。
从空栈开始,把新结点插到头部,再安全地释放旧栈顶。
申请、赋值、链接、断链、释放,每一步都在和内存打交道。
一块开发板、一个传感器和一个订阅端,先把数据真正送出去。
把抽象关系画出来,比在调试器里反复猜指针更省时间。
03 / ABOUT
Nullcheese 是一个围绕底层与现场的学习记录站。这里更关心一件事: 代码为什么能工作,以及换一台机器、换一块板子之后,它还能不能工作。
内容以学习笔记为主,偶尔也会有实验记录、代码片段和踩坑复盘。 所有结论尽量配一个可以复现的步骤,而不是只留下一个看起来正确的答案。
NULL + CHEESE:空指针本身不危险,没想清楚的内存访问才危险。