【发布时间】:2016-04-18 04:03:45
【问题描述】:
这不是一个真正的问题,因为它已经解决了。但我想在这里分享它,因为有人可能会遇到同样的问题。我很想对此有更深刻的解释。
我正在使用 Keil μvision3 在 C8051F340 上编程(我认为这与这个问题无关)。在我的 main.c 我有类似的东西:
... // accessible code
getInput();
... // not accessible after modification
在 mobile.c 中(忽略不相关的标题、包含、blablabla):
void getInput()
{
...
}
没关系。但是,在我对代码做了一些修改后,
void getInput(struct SomeStruct *ss)
{
...
}
编译和下载到芯片完成,没有任何错误。虽然我确实发现了一个警告:
*** 警告 L2:参考未解决的外部
符号:GETINPUT
但我有点懒惰,我的同事有很多其他警告,无法阅读。(坏习惯!)
我想学的东西:
- 为什么 Keil 允许这样的东西编译没有错误(在 C 中它 肯定是function not declared错误)?
- REFERENCE MADE TO UNRESOLVED EXTERNAL 说明了什么?它找到了具有相同名称的函数,但由于它具有不同的参数而无法解析,或者它只是允许任何函数而不检查它在项目中的存在?我找不到如何从中生成汇编代码,所以我不太确定。
【问题讨论】: