为什么启动文件通常用汇编而不是 C 写?
📅 2026/7/23 5:44:23
👁️ 阅读次数
📝 编程学习
难度:★
本文首发于「OneChan」,未经授权禁止转载。
前两篇文章我们聊了向量表和复位流程。有读者看完后问了一个很实在的问题:
“既然Reset_Handler里调了SystemInit和__main,这两个都是 C 函数,那为什么Reset_Handler自己不能用 C 写?”
这个问题问到了汇编和 C 的本质边界。
答案是:不是不想用 C,是在那个时间点,C 语言运行所需的“基础设施”还没搭好。用 C 写启动代码,就像要求一个还没学会走路的小孩去跑马拉松——它连站都站不稳。
今天我们把这个问题彻底讲透。
一、C 函数运行需要什么条件?
先看一个最简单的 C 函数:
voidmy_function(void){
编程学习
技术分享
实战经验