c語言程式的編譯以linux下編譯過程為例(即gcc命令)依次執行4個步驟:
1.預處理(preprocessing)
2.編譯(compilation)
3.彙編(assemble)
4.鏈結(linking)
第一步: 進行預處理
gcc -e 1hello.c -o 1hello.i
第二步: 生成彙編檔案
gcc -s 1hello.i -o 1hello.s
第三步: 生成目標**
gcc -c 1hello.s -o 1hello.o
第四步: 生成可以執行檔案
gcc 1hello.o -o 1hello
gcc常用選項 :
-wall 顯示警告
-g 利用gdb顯示除錯資訊
作用:(1)處理帶#號的預處理指令,標頭檔案展開,完成巨集定義替換(刪除了#define),處理所有的條件編譯指令(#if 0 #endif等),但保留#pragma編譯器指令。
(2)刪除所有注釋,新增行號和檔案標示。
(3)不能檢查語法錯誤(這一條很重要)
(4)生成預處理檔案
作用:編譯的過程實質是把高階語言翻譯成機器語言的過程
(1)詞法分析,語法分析,語義分析。
(2)優化後生成相應的彙編**
(3)檢查語法錯誤
目的:高階語言->組合語言
1.#pragma 編譯器指令是什麼?有什麼作用?
2.條件編譯指令如何實現?
3.巨集替換的規則?
Struts工作流程
文章分類 招聘求職 乙個使用者的請求是通actionservlet來處理和 的。那麼,actionservlet如何決定把使用者請求 給哪個action物件呢?這就需要一些描述使用者請求路徑和action衍射關係的配置資訊了。在struts中,這些配置對映資訊都儲存在特定的xml檔案struts c...
zf工作流程
zend controller是使用mvc模式來構建乙個站點的基礎。zend controller體系是乙個輕量的,模組化和可擴充套件的體系。它只提供最核心的必要的部分,允許開發者有很大的自由來靈活地構建自己的站點。使用zend controller的站點,其檔案組織和 結構會比較相似。zend c...
spring MVC 工作流程
1 首先來配置一下dispatcherservlet spring mvc和大部分mvc框架一樣,底層也是依賴servlet api的,所以spring mvc的請求處理也是從乙個servlet開始,這個servlet就是dispatcherservlet.以下是在web.xml中dispatche...