先創(chuàng)建一個工程,選擇win32的吧,然后一直下一步直到完成
烏魯木齊ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!
然后在左邊找到你創(chuàng)建的一個和你工程名字一樣的文件打開,如果沒錯的話里面應(yīng)該是一個main函數(shù)示例,把它刪,把你的代碼粘貼到這個文件,按F5會提示編譯,確定后開始編譯,如果編譯沒問題會在編譯完成后運(yùn)行(調(diào)試態(tài))
娟豬下班了沒有
編譯共分為四個階段:預(yù)處理階段、編譯階段、匯編階段、鏈接階段。
1、預(yù)處理階段:
主要工作是將頭文件插入到所寫的代碼中,生成擴(kuò)展名為“.i”的文件替換原來的擴(kuò)展名為“.c”的文件,但是原來的文件仍然保留,只是執(zhí)行過程中的實(shí)際文件發(fā)生了改變。(這里所說的替換并不是指原來的文件被刪除)
2、匯編階段:
插入?yún)R編語言程序,將代碼翻譯成匯編語言。編譯器首先要檢查代碼的規(guī)范性、是否有語法錯誤等,以確定代碼的實(shí)際要做的工作,在檢查無誤后,編譯器把代碼翻譯成匯編語言,同時將擴(kuò)展名為“.i”的文件翻譯成擴(kuò)展名為“.s”的文件。
3、編譯階段:
將匯編語言翻譯成機(jī)器語言指令,并將指令打包封存成可重定位目標(biāo)程序的格式,將擴(kuò)展名為“.s”的文件翻譯成擴(kuò)展名為“.o”的二進(jìn)制文件。
4、鏈接階段:
在示例代碼中,改代碼文件調(diào)用了標(biāo)準(zhǔn)庫中printf函數(shù)。而printf函數(shù)的實(shí)際存儲位置是一個單獨(dú)編譯的目標(biāo)文件(編譯的結(jié)果也是擴(kuò)展名為“.o”的文件),所以此時主函數(shù)調(diào)用的時候,需要將該文件(即printf函數(shù)所在的編譯文件)與hello world文件整合到一起,此時鏈接器就可以大顯神通了,將兩個文件合并后生成一個可執(zhí)行目標(biāo)文件。
因?yàn)镃語言中你編寫的函數(shù)中用到了基本的比如輸出,定義這些,這些都是頭文件里面寫好的,如果你要單獨(dú)編譯,可以自己把這些東西定義在一個文件中,自己重新寫一遍,另外還得編譯器支持。
調(diào)用函數(shù)庫的話用#include?XXX.h或者#include"XXX.h"區(qū)別是你庫文件放在同一個文件夾還是在IDE的安裝目錄下面,如果你庫文件在你工程文件夾里面用#includeXXX.h,否則用#include?"XXX.h"
如果你說自己寫庫的話是需要兩個宏命令,#ifndef?_XXX_H?#define?_XXX_H,然后你函數(shù)名用extern表示
如果你說編譯的話,你應(yīng)該說的是編譯原理吧,你可以反匯編一下一個編譯好的程序,如果該處編譯了一個其他函數(shù)庫的函數(shù),你可以看到程序把參數(shù)PUSH到內(nèi)存后CALL或者LCALL了一個這個函數(shù)的地址,這就完成了匯編中調(diào)用函數(shù)的部分,我記得X86里面CALL的機(jī)器碼是E8H吧,有興趣的話可以自己用反匯編看一下
這個CALL的話就是調(diào)用函數(shù)的功能
新聞名稱:c語言函數(shù)編譯 c語言中編寫函數(shù)
當(dāng)前URL:http://vcdvsql.cn/article4/dopiiie.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、軟件開發(fā)、網(wǎng)站內(nèi)鏈、微信小程序、Google、虛擬主機(jī)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)