曾幾何時,你是否也為計算內存地址而掉了一把又一把的頭髮?
小心翼翼算完一遍地址,結果有個地方報地址衝突,又得來回檢查一遍,頭不禿眼睛都要瞎了!
今天,小編在調程序時候,由於粗心將幾個數組放在了同一個地址(還沒發現),就開始用了。運行現象一切正常,所以沒管。後來檢查程序時候發現,竟然地址相同!
但實際是,數據絲毫沒受影響!
奇怪了,__attribute__((at()))指定了首地址,為什麼數據不會被覆蓋呢?
然後想到打印出數組首地址,看看到底存在哪兒了!
震驚!竟然自動往後排了?為什麼呢?
既然語法上解釋不通,那就很有可能是keil在背後默默奉獻了。
打開map文件找一找,找到了!
看來就是keil自動幫我們計算好了!
這可真是福利呀,不用在耗費大量時間在地址計算上了,安心編程吧!
注意:小編的keil版本是5.29,舊版本是不行的,如5.25就會報地址衝突!!
閱讀更多 小鋒學長 的文章