//hello world --- test program //注釋,編譯器會忽略此處
#include //預處理器編譯指令#include
int main()//函式頭
4) 函式特性:有函式頭和函式體;接受乙個引數;返回乙個值;需要乙個原型
處理#號開頭的預處理命令,進行巨集替換,去掉**中的注釋。
預編譯命令:g++ -e helloworld.cpp -o helloworld.i
可以檢視生成的helloworld.i檔案去check預編譯的處理結果。
編譯器將.i檔案編譯成彙編檔案
編譯器對程式**的編譯主要分為下面幾個過程:
1、詞法分析;2、語法分析;3、語義分析;4、中間**生成;5、**優化;6、**生成;7、符號表管理;8、將多個步驟組合成趟;9、編譯器構造工具
編譯命令:g++ -s helloworld.i ;
我們可以檢視生成的helloworld.s去了解生成的彙編指令
將彙編指令轉變成機器可以執行的指令。
彙編命令:
g++ -c helloworld.s -o helloworld.o
注意此處生成的.o檔案是不能直接執行的,執行後會提示「無法執行二進位制檔案」
彙編生成的檔案不能被執行,因為原始檔中引用的內容需要被鏈結。鏈結器的主要功能就是將程式相關的所有目標檔案鏈結在一起生成可執行檔案
命令:g++ helloworld.o -o helloworld
我們執行生成的
./helloworld.exe
檔案即會輸出「
hello
world」
注意:
相同點:都是共享**的方式
對比:動態鏈結庫更加節省記憶體,在執行時鏈結,執行速度比靜態鏈結稍慢。我們在維護或修改程式時,只要保證介面不變,直接替換dll不會對程式造成影響。
小學生的學習之路
C 之程式集
c 之程式集 程式集的定義 1.程式集是乙個或多個託管模組,以及一些資源檔案的邏輯組合。2.程式集是元件復用,以及實施安全策略和版本策略的最小單位。3.程式集是包含乙個或者多個型別定義檔案和資源檔案的集合。在程式集包含的所有檔案中,有乙個檔案用於儲存清單。清單是元資料部分中一組資料表的集合,其中包含...
C 之程式框架
每一種程式語言都有自己的程式框架,今天我就來介紹一下c 的程式框架吧 1 標準框架 include 標頭檔案,有時需要新增新的標頭檔案 可以在這一行新增新的標頭檔案 using namespace std 標頭檔案,有時需要新增新的標頭檔案 intmain 主函式 注意每一句話的後面要帶上封號 否則...
C 學習小程式
老師發布了乙個程式的些許部分叫我們補足。類似於乙個遊戲的封面 下面是主函式 include comgame.h int main 然後是三個標頭檔案 ifndef comgame h define comgame h include hero.h include skin.h include inc...