目標檔案裡有什麼
3.1目標檔案的格式
windows中動態鏈結庫.dll linux中是.so
windows中靜態鏈結庫.lib linux中是.a
可執行檔案在windows下按照pe-coff格式儲存,linux下按照elf格式儲存
elf檔案分類:
3.2目標檔案是什麼樣的
目標檔案中不僅有編譯後的機器指令**,資料,還有關於鏈結的必要資訊:
符號表,除錯資訊,字串等,目標檔案將此資訊按不同屬性,以節(section)
的形式儲存,有時也叫段(segment).
eg:編譯後有了**段,資料段,唯讀資料段...... 看程序位址空間圖
目標硬體,目標os資訊,還有乙個段表(section table)描述各段在檔案中的偏移,及屬性等)
總之:編譯後主要分兩種段:程式指令(**段)和程式資料(資料段,bss段)
分段的好處:
《程式設計師的自我修養》筆記
以下是我讀此書時作的一些筆記,當然書中還有很多值得參考的想法,就不一一枚舉了。一萬小時說法 這個說法很普遍了,它再次提醒了我如何去做乙個領域的專家。如果平均每天八小時在這個領域上,那麼一年300天 300 8 2400,保持這種學習激情在上面,五年內就可以成為專家了,我算了算自己在這個領域投入的時間...
《程式設計師的自我修養》閱讀筆記(三)
第10章 記憶體 函式呼叫慣例。函式返回值通常儲存在暫存器eax,然後由呼叫者讀取,對5 8位元組返回值,通常由eax儲存低4位,edx儲存高4位。而返回值大於8位元組時,呼叫過程大致如下 聲名狼藉的c 返回物件。為此,c 提出了返回值優化 return value optimization,rvo...
程式設計師的自我修養
一忌 輕易言敗,沒有自信 沒有永不放棄精神的程式設計師,只是乙個有程式設計師名號的假程式設計師。乙個真正的程式設計師,知道在程式設計的過程中,可能會遇到不計其數的困難和問題,可能有極多的挫折和失敗,而成功只有一次。就為解決乙個問題,我們可能連續十幾甚至幾十小時的坐在計算機前不停的工作。乙個問題解決了...