欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

軟件編譯中步驟探詢

系統 1654 0

我們在程序編譯時會經歷  預編譯---編譯---匯編---鏈接  這四個階段。

在高級語言中這些步驟不易察覺,下面是幾個階段要處理的內容:

預編譯 :此過程主要處理源代碼中以#開頭的預編譯指令,如 #if ,#include,#define等

?1.將所有的#define刪除,并且展開所有的宏定義。

?2.處理所有條件預編譯指令,比如:#if ,#endif,#ifdef等

?3.處理#include預編譯指令,將被包含的文件插入到此指令的位置。注意:這個過程是遞歸調用的,也就是說這個文件 也可能包含其它文件。

?4.刪除所有的注釋,如://,/**/等

?5.添加行號和文件名標識名,以便編譯器產生調試用的行號信息及用于編譯時產生的編譯錯誤和警告時能顯示它的行號。

?6.保留所有#pragma編譯器指令,因編譯器要使用它們。

經過預編譯后的文件不包含任何宏定義,因為所有的宏已展開,并且包含的文件也被包含到產生的文件中。

?

編譯 :編譯的過程就是把預編譯后的文件進行一些詞法分析、語義分析、及優化后產生的匯編文件。這個過程就是我們所說的整個程序構建的核心部分,也是最復雜的部分之一。現在GCC把預編譯和編譯合成一個步驟。

?

匯編 :此過程是把匯編代碼轉變成機器碼,因為每一個匯編語句幾乎對應一條機器指令。所以匯編器的匯編過程相對于編譯器來說比較簡單,沒有復雜的語法,也沒有語義,也沒有優化,只是根據匯編碼和機器指令的對照表一一翻譯就可以了。

?

鏈接 :此過程讓人非常費解,為什么匯編器不一次性產生可執行的輸出文件呢而產生許多目標文件?鏈接的過程到底包含了什么內容?為什么要鏈接?

???? 編譯器就是將高級語言編譯成機器語言的一個工具。編譯的過程一般是:掃描--語法分析--語義分析--源代碼優化--代碼生成--目標碼優化。 我們在產生大的文件時,會產生多個模塊的文件,這些文件通過接口相互引用。 如:我們A模塊要調用B模塊的一個動態數組或dll中的函數,在編譯器A并不知道B中數組或函數的地址,如果這時就匯編中一個執行文件會讀取內存出錯。而只有在運行時即運行庫中才能產生B中數組或函數的地址,這時A才能調用,所以這一步是在鏈接時完成的。

???? 鏈接過程也把各模塊“拼接”成一個可執行文件,所以鏈接過程變的十分重要和突出。

軟件編譯中步驟探詢


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 香港三级午夜理伦三级 | 亚洲欧美日韩在线线精品 | 国内精品一区二区 | 国产馆精品推荐在线观看 | 欧美成人三区 | 青青青青手机在线视频观看国产 | 成片在线看一区二区草莓 | 欧美一级www片免费观看 | 亲爱的热爱的电视剧免费观看 | 国产成人综合欧美精品久久 | 亚洲播播 | 久久噜噜噜精品国产亚洲综合 | 欧美日韩视频网站 | 色综合久久98天天综合 | 日韩手机在线 | 国产亚洲欧洲国产综合一区 | 激情一区二区三区成人 | 成人免费视频观看 | 高清人人天天夜夜曰狠狠狠狠 | av免费不卡国产观看 | 久久午夜精品 | 青娱乐免费视频观看 | 成人国产在线观看 | 99久久久久久久 | 精品女同一区二区三区免费播放 | 99re6热只有精品免费观看 | 久久综合性 | 久久精品99久久 | 日产精品久久久久久久 | 久久国产成人 | 站长推荐国产午夜免费视频 | 婷婷国产成人久久精品激情 | 亚洲另类天天更新影院在线观看 | 嫩草91| 九九精品激情在线视频 | 亚洲精品一区二区三区婷婷月色 | 蜜桃日韩 | 蜜桃视频在线观看www社区 | 呦呦在线视频 | 亚洲日韩中文字幕一区 | 久在线播放 |