c语言是以文件为单位编译,c语言从头开始(三:编译器工作原理) (我们还可以自己编写头文件后缀是xx.h并把它当前代码文件所在目录我们要用就可以直接通过下面代码使用)...
c語言從頭開始(三:編譯器工作原理)
【【楓歌楓歌】c語言從頭開始(三:編譯器工作原理)】https://toutiao.com/group/6568056688174170628/?iid=15906422033&app=explore_article×tamp=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并把它当前代码文件所在目录我们要用就可以直接通过下面代码使用)...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vc c语言 颜色输出字符,关于prin
- 下一篇: c语言一位共阳数码管编程,求一个共阳四位