找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

keil c51单片机中调用一个已声明但未定义的函数,发生的一个奇怪的问题

查看数: 4324 | 评论数: 1 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2018-10-14 23:48

正文摘要:

如题,今天在调单片机程序的时候(用的stc89c51),声明了很多函数,但有一个忘记写函数体,在主程序中调用,只报了警告,于是并没有上心,急急忙忙下程序到单片机,发现程序不能正常运行。。。抓耳挠腮了半个小时( ...

回复

ID:387733 发表于 2018-10-15 07:10
软件编译有两个步骤,第一步对各个模块编译,因为编译过程中地址是无法定位的,过程中对于所有不能定位的地址,包括已经申明过的地址指向暂用“0000”占位。第二步是将各个编译好的模块连接定位,将编译时预留的“0000”用实际地址替换掉。如果只有声明,没有函数体,那么在连接时就无法定位实际地址,所以仍保留“0000”,这时系统会给出警告,因此对于有些警告必须重视,否则会引起麻烦。

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表