關於C語言編譯器和C語言標準

2021-08-10 04:41:30 字數 792 閱讀 3408

很多同學在剛開始學習c語言的時候,基本不會也不用去了解c語言的基本資訊,比如,c語言標準c11和c99。還有的同學不知道c語言編譯器究竟是個什麼東西,有何作用。為了解答初學者的疑惑,筆者給大家簡單明瞭的解釋一下,只是拋磚引玉,歡迎大咖們指正。

編譯器

簡單的說,編譯器的任務就是把人類可看懂的源**變成機器可以直接執行的指令。在乙個程式編寫完成後,機器並不能直接看懂並且執行指令,需要通過編譯器這個中間轉換器,將源**通過編譯成一條條機器能夠識別並且能夠正確執行機器指令。所以,可以不恰當的將編譯器比作乙個翻譯人員,將你們看不懂的外國語言翻譯成你能懂得國語,這樣你才能根據你對翻譯結果的理解,作出反饋。至於有些詞彙怎麼翻譯,句子怎麼組織,就看這個翻譯人員的語言功底了,也就是說編譯器的好壞,會影響到最終機器對指令的識別和執行,當然會影響到最終的執行結果。還有乙個問題大家需要明白,這裡指的機器並不指某一台計算機,而是所有的虛擬機器,它們多種多樣,千差萬別,當然需要的編譯器也很多,但是,有了編譯器,會給程式設計人員帶來很多便利,減少了很多底層工作。c語言並不只有一種編譯器,例如gcc,visual c++等。

c語言標準

上面談到c語言編譯器有很多,所以就有可能發生一些程式設計人員不想看到的事情,那就是同一句c語言**,卻被不同的c語言編譯成不同的指令,所以需要一種標準來規範編譯器,這樣,c語言標準就誕生了。目前,大家看到的會有c11標準和c99標準。c99的一些新的特性會影響到程式的編譯,但是有一種比較省心的做法是將源**儲存為.cpp,特別是在演算法競賽當中,最好將c程式當作c++來提交,雖然有點不嚴謹,但是,演算法競賽的主要目的是用**解決問題,只要能更好更快的解決問題就行。

關於C標準和編譯器

編譯執行源 時出現錯誤error main must return int 將main函式返回型別由void改為int,編譯執行成功。通過蒐集資料知道,這是由於c標準變化產生的問題。在世界第乙個完整的c語言標準c89 c90中,main 是正確的。但在c99標準中,只有以下兩種定義方式是正確的 in...

C 語言 編譯器

c 語言是高階程式語言,人們在使用 c 語言工作的時候不必用數字碼表示指令,大大簡化了對於計算機底層暫存器的操作,人們可以把工作的重點放在 設計和具體功能的實現,編寫出更易讀易懂的 可是計算機的工作和人類正好相反,c 語言編寫的 對於計算機而言就好比是天書且沒有意義可言,因為計算機是識別機器語言的,...

C語言的編譯器

c語言的常用編譯器 目前最流行的c語言編譯器有以下幾種 gnu compiler collection 或稱 gcc microsoft c 或稱 ms c borland turbo c 或稱 turbo c 這些c語言版本不僅實現了ansi c標準,而且在此基礎上各自作了一些擴充,使之更加方便 ...