C语言和C实现
文章目錄
- 1 C語言和C實現
- 1.1 C語言
- 1.2 C實現
1 C語言和C實現
1.1 C語言
C語言:在本質上就是一套規則,它告訴我們程序應該怎么寫,這么寫可以實現什么功能。 而這些規則我們到哪里去查看呢,C11標準文檔是最新的、最權威的。
但現在的問題是,我們按照這套規則寫的程序,計算機是無法識別的
int a = 20; --> 計算機:這什么玩意
所以,我們需要對按照這套規則所寫的程序進行轉換,將其轉換為計算機可以識別的機器指令。
我們可以人工的、手動的對其進行轉換,但這樣非常麻煩。并且,如果手動的進行轉換的話,那我們還不如直接用機器指令去寫呢,何必多此一舉呢。
所以,在實際中,我們是通過 轉換程序 來對源文件進行轉換的:
int a = 20; (雖然C語言定義了它的功能,但是這毫無意義,因為處理器不認識它)
–> 通過 轉換程序 進行轉換 --> 得到可以實現相同功能的機器指令(這才是有意義的) --> 交給處理器去執行
1.2 C實現
C語言只是一套編寫程序的規則,它對于處理器來說毫無意義。所以,我們編寫C程序是離不開這個轉換軟件的,而這個轉換軟件,我們稱之為 C實現。
C實現并不是指某一個軟件,而是一套軟件。因為,整個轉換過程需要多個階段來完成,每個階段都需要相應的程序來進行處理。
然后,編譯是整個轉換過程中的其中一個步驟、需要通過編譯器這個軟件來完成。而我們經常使用編譯器這個詞來代替C實現,大家經常把它們混淆在一起。所以,當我們看到編譯器這個詞的時候,要根據上下文來判斷,它到底指的是什么。
C語言一直在更新,現在最新的是C11標準。但是,并非所有的C實現都跟得上標準的步伐。也就是說,不同的C實現對標準的支持程度是不同的。
總結
- 上一篇: 转换环境与执行环境、宿主环境与独立环境、
- 下一篇: 源字符集与执行字符集