久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3887|回復: 1
打印 上一主題 下一主題
收起左側

keil c51單片機中調用一個已聲明但未定義的函數,發生的一個奇怪的問題

[復制鏈接]
跳轉到指定樓層
樓主
如題,今天在調單片機程序的時候(用的stc89c51),聲明了很多函數,但有一個忘記寫函數體,在主程序中調用,只報了警告,于是并沒有上心,急急忙忙下程序到單片機,發現程序不能正常運行。。。抓耳撓腮了半個小時(點擊警告不能定位),才發現有一個函數沒有寫函數體,寫上函數體后,程序正常執行。索性來了興趣,為什么程序會不正常執行,寫了一段測試程序,如圖: 仿真中運行發現編譯器對于僅聲明的函數,會將其地址指向0x0000,也就是主程序的入口main,每當程序執行到這個僅有聲明的“函數”時,就會從0000從新開始。。。。貌似發現了新大陸?stc89c51的軟復位?但其實我并不知道原理,也不是很了解匯編,為何會這樣。。。。求大佬指點。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:387733 發表于 2018-10-15 07:10 | 只看該作者
軟件編譯有兩個步驟,第一步對各個模塊編譯,因為編譯過程中地址是無法定位的,過程中對于所有不能定位的地址,包括已經申明過的地址指向暫用“0000”占位。第二步是將各個編譯好的模塊連接定位,將編譯時預留的“0000”用實際地址替換掉。如果只有聲明,沒有函數體,那么在連接時就無法定位實際地址,所以仍保留“0000”,這時系統會給出警告,因此對于有些警告必須重視,否則會引起麻煩。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: av一区二区三区四区 | 午夜影院网站 | 精品一区二区在线视频 | 91精品国产91久久久久久不卞 | h视频免费观看 | 国产电影一区 | 国产一在线 | 91视频精选 | 天天碰日日操 | 免费高潮视频95在线观看网站 | 国产欧美日韩在线观看 | 亚洲午夜精品一区二区三区他趣 | 久久精品久久综合 | 狠狠影院| 欧美日韩a | 亚洲区一区二 | 欧美一区永久视频免费观看 | 国产在线精品一区二区三区 | 波多野结衣一区二区 | 午夜欧美 | 国产精品久久久久久久久久久久久 | 亚洲精品福利在线 | 精品乱码久久久久 | 午夜精品一区二区三区在线视 | 久久精品国产亚洲一区二区三区 | 欧美日本一区二区 | 中文字幕不卡在线观看 | 男女下面一进一出网站 | 国产人久久人人人人爽 | 精品欧美一区免费观看α√ | 成人免费视频在线观看 | 9191av| 国产精品高潮呻吟久久av黑人 | 久久精品国产一区 | 国产一级影片 | 久久久精品 | 久久网一区二区三区 | 国产欧美一区二区三区在线看蜜臀 | 521av网站 | 日韩日韩日韩日韩日韩日韩日韩 | 国产精品一区二区三区久久久 |