C语言与TinyCC
文章平均质量分 70
从C语言基础走向TinyCC源码,用小程序、编译结果和具体状态解释变量、指针与编译过程。
咔_
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C函数改了参数,外面的值为什么有时变、有时不变?
整数、指针、数组形参都可以值传递,为什么修改结果不同?追踪复制的值和实际访问的对象,再解释数组地址为什么还需要长度。原创 2022-12-12 18:36:02 · 187 阅读 · 1 评论 -
C语言重新开始:编译通过了,为什么还会链接失败?
用三个小文件拆开预处理、编译、汇编与链接:亲手生成.i、.s和.o,再复现undefined reference。看清声明与定义的区别,以及程序退出码为什么不等于屏幕输出。原创 2025-05-09 12:21:09 · 302 阅读 · 0 评论 -
两道C入门题:scanf多组输入怎么判断,最大最小值怎么初始化
保留比较两个数与成绩差的原始思路,修正 scanf 返回值和按位取反的误解,增加失败输入与单遍统计实验。原创 2022-12-11 14:11:06 · 253 阅读 · 1 评论 -
C语言第二课:main调用了test,为什么test看不见main里的变量?
沿main与test区分调用关系、名字可见范围和对象存储期;用同名遮蔽与普通赋值的对照,解释为什么出了代码块不是把变量恢复了。原创 2022-12-09 15:09:41 · 197 阅读 · 0 评论 -
小菜的C语言之路——第一课——启程
C语言第一课原创 2022-12-08 20:36:45 · 918 阅读 · 2 评论 -
C语言第四课:关键字不是背单词,先分清break、continue、static与typedef
清理原文中误留的 pandas 模板,通过可运行的循环、静态局部变量和类型别名实验认识关键字,并说明语言版本与作用域的边界。原创 2025-05-14 14:38:45 · 271 阅读 · 0 评论 -
Tinyc编译器(翻译)
`VT_JMP`、`VT_JMPI`:表示值是条件跳转的结果。- `VT_LVAL_BYTE`、`VT_LVAL_SHORT`、`VT_LVAL_UNSIGNED`:若 lvalue 是整数类型,这些标志提供其真实类型。- `VT_LLOCAL`:栈上保存的 lvalue,必须与 `VT_LVAL` 一起设置。- **计算型 goto**:`&&label` 返回指向 goto 标签 label 的 void * 指针,`goto *expr` 可跳转到 expr 结果的指针。原创 2025-07-01 22:59:37 · 916 阅读 · 0 评论 -
tcc -run不是解释C:用返回码、产物和源码看内存编译
用返回7的C程序、显式exe对照和未定义符号诊断,验证tcc -run的内存编译路径,并说明它省下的操作与没有消失的工程边界。原创 2026-10-06 10:00:00 · 446 阅读 · 0 评论 -
两个-I都能编译成功,结果却不同:沿TinyCC的TCCState追一次头文件查找
交换两个头文件目录,编译都成功,程序却从19变成29。沿-I追踪路径的保存、查找和释放,理解状态结构体中的指针、计数与数据所有权,附完整复现实验。原创 2026-10-18 13:38:29 · 275 阅读 · 0 评论
分享