为什么 IMPORT 和 EXTERN 会有两种写法?
2026/7/23 14:31:15 网站建设 项目流程

难度:★★
本文首发于我的嵌入式技术号「OneChan」,未经授权禁止转载。


上一篇文章我们讲了EXPORTIMPORT的基本逻辑:一个往外送,一个往里拿。

但细心的读者可能发现了——有些启动文件里用IMPORT,有些用EXTERN,还有些两个混着用。

IMPORT SystemInit ; 有的用这个 EXTERN __heap_base ; 有的用这个

这两个关键字都能引用外部符号,那为什么要有两个?它们到底差在哪?混用会出问题吗?

今天我们就来剖析这个“最容易被忽略的差异”。它的背后,藏着链接器的两种符号解析策略,以及一个你可能从未意识到的运行时陷阱。


一、先看现象:把 IMPORT 写成 EXTERN 会怎样?

做一个实验。写一个最简启动文件:

EXPORT Reset_Handler EXTERN SystemInit ; 故意用 EXTERN,不用 IMPORT EXTERN __main Reset_Handler PROC

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询