日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言是以文件为单位编译,c语言从头开始(三:编译器工作原理) (我们还可以自己编写头文件后缀是xx.h并把它当前代码文件所在目录我们要用就可以直接通过下面代码使用)...

發布時間:2025/3/20 编程问答 28 豆豆

c語言從頭開始(三:編譯器工作原理)

【【楓歌楓歌】c語言從頭開始(三:編譯器工作原理)】https://toutiao.com/group/6568056688174170628/?iid=15906422033&app=explore_article&timestamp=1533653428&group_id=6568056688174170628&tt_from=copy_link&utm_source=copy_link&utm_medium=toutiao_ios&utm_campaign=client_share

(我們還可以自己編寫頭文件后綴是xx.h并把它當前代碼文件所在目錄我們要用就可以直接通過下面代碼使用)

------------------

以gcc編譯器為例子,編譯實際上總共經歷了四個階段

預處理--->編譯--->匯編--->鏈接

1.預處理

預處理就是對源代碼進行文本處理,對開頭**除空白外第一個字符為#的代碼行**進行處理。

例如:

```

#include

```

前面說過這個是標準輸入輸出頭文件,讀到這行代碼時,從編譯器的內置查找路徑的根部開始查找stdio.h文件,讀取其內容,并把它直接插入到程序文本前面。

stdio.h是編譯器內原本就有的頭文件,像類似的還有很多,比如math.h和string.h等等。當然,我們還可以自己編寫頭文件,頭文件的后綴是xx.h,并把它當前代碼文件所在目錄。我們要用就可以直接通過下面代碼使用

```

#include 'xx.h'

```

還有宏定義

```

#define XX YY //把XX定義為YY,也就是下面代碼所以出現的XX就相當于YY

```

在cmd命令行中輸入

```

gcc -E xx.c -O xx.i

```

打開就可以看到我們的源代碼前面多了很多東西

2.編譯

將文本文件hello.i翻譯成文本文件hello.s。我們在cmd命令行中輸入

```

gcc -S xx.i -o xx.s

```

沒錯,可以看到代碼被編譯成了匯編語言。

3.匯編

代碼已經被編譯成為匯編語言,那么下一步應該干什么?

沒錯,在把它更進一步,變成機器語言,也就是01組成的二進制文件,繼續打開cmd

```

gcc -C xx.s -o xx.o

```

但是,它是二進制格式,無法直接查看,可以用反匯編器來查看它的編碼:objdump –d xx.o

4.鏈接

最后一步就是鏈接了

```

gcc xx.o -o xx.exe

```

我們看到了我們熟悉的.exe文件。

總結

以上是生活随笔為你收集整理的c语言是以文件为单位编译,c语言从头开始(三:编译器工作原理) (我们还可以自己编写头文件后缀是xx.h并把它当前代码文件所在目录我们要用就可以直接通过下面代码使用)...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。