① C語言學習的一個關於版本和編譯器選擇的問題
現在國內的書,可能大多還是用的vC6,C89的標准。如果用新標準的話,舊有的就不大夠用了,版本可以適當用高一些,windows還是VS用的多,上面用的都是MS自己的編譯器。其他教學有用可能還有cfree,編譯器不一樣。反正我用著不是很習慣。linux平台的,gcc神馬的,我不是很清楚。
關於由聲明想到的一個問題,現在感覺C和C++的語法蠻多都是夾雜的,也不大會去區分,反正用C++的編譯器都OK。。具體拿不準可以看下書的序什麼的,應該會有介紹環境。
② c語言編譯器哪個好
1.
GCC
大名鼎鼎的GNU的C/C++/Obj-C編譯器,
當前版本是2.8.1,
但據說與2.7.*有兼容性
問題.
而使用較廣的是gcc
2.7.2系列,
如RedHat5中帶的就是gcc
2.7.2.3
有時候在Cyrix上用gcc會有些問題,
因此有一套針對Cyrix特點的gcc
2.7.2.3
我這里有RedHat5的rpms
ftp://166.111.68.98/pub/Warez-CD/Huricane-contrib
(Cyrix
2.7.2.3
&
2.8.1)
其基本結構就是一個front
end和back
end,
/usr/bin/gcc
就是個front
end,
其kernel東西都放在
/usr/lib/gcc-lib下面,
cpp是C預處理器,
cc1*的1M多的就是編譯器的核心模塊了
cc1
C
compiler
cc1plus
C++
compiler
cc1obj
Object-C
compiler
但gcc並沒有集成Fortran的compiler,
一般要用f2c轉成C後才用gcc編譯
好象也還有個g77
Fortran
compiler吧?
gcc的不斷發展完善使許多commercial
compiler都相形見絀,
那當然,
gcc/emacs
都由GNU創始人Richard
Stallman手創,
是GNU的旗艦產品,
質量當然沒得說了:-)
由於
Unix平台的高度可移植性,
gcc幾乎在各種常見的Unix平台上都有,
即使是
Win32/DOS也有gcc的port.
比如說該死的Solaris普通版本連compiler都沒有,
也
就只好用gcc了...
2.
EGCS(Experimental/Enhanced
GNU
Compiler
System)
這是gcc的發展方向,
把fortran等編譯器集成進來,
也許還會有Pascal?
它的構造很清晰,
把對gcc的各種改進/port都集成回去.
如gcc
2.7系列據說是
沒有對Pentium進行優化的,
而egcs則把pgcc對Pentium的一些優化集成進去了
現在gcc的開發工作主要就是egcs,
由Cygnus公司領導(?),
這Cygnus公司還是很
不錯的,
還出了GNU-Win32,
SourceNavigator等,
是GNU的堅實擁護者:-))
http://egcs.cygnus.com
包括了C/C++/Obj-C/Fortran
編譯器,
當前最新版本1.0.2,
還在不斷開發中
昨天download發現KDE
Beta4都用egcs編譯了
:-)
Fortran集成進來後在/usr/lib/gcc-lib下又多了個f771的back
end,
當然
還是g77/f77
編譯
我這里有egcs
1.0.2
的rpm
在RH5-CD/collect下面
3.
PGCC(Pentium
GCC)
http://www.gcc.ml.org
針對Pentium
CPU進行了編譯器優化的compiler
pgcc據說用JPEG壓縮解壓縮測試最快可比gcc快
30%!
新版的pgcc都是基於egcs的,
以一個patch的形式release
③ C語言的編譯器為什麼有許多不同的版本並且在不同的編譯器版本下C語言的語法規則也不盡相同
C的標准本來就有多個版本,目前編譯器採用的標准比較常見的是ANSI C和C99。另外語言標准中也存在未定義行為,留給編譯器實現自己去定義。各種編譯器對標準的實現也未必完全遵守(C還好,C++這種特別復雜的語言就很難做到完全遵守標准了),而且往往還增加一些自己的擴展,預定義宏之類的。這些都給跨編譯器編碼帶來麻煩。不過總體而言C是個比較單純的語言,除非程序員故意,一般搞不出太多給編譯器出難題的花樣。作為長期用C++的程序員,非常羨慕C代碼編譯時那種飛快的速度。
麻煩採納,謝謝!
④ 編譯器版本不一會不會有差別
各種程序設計語言的編譯器版本肯定是會有差別的。但是編譯器版本一般都是向下兼容的。例如:你在舊版本的 C 編譯器中編寫的 C 語言源代碼,若 C 語言編譯器的版本升級到了新版本,它肯定會完全兼容你原來在舊版本中編寫的所有 C 語言源代碼;但是反之是不行的。
因為在新的編譯器版本中,除了增加了一些必須要修改的各種 bug 之外,肯定還會增加一些新的庫函數供用戶使用,使得用戶編程更加方便、得心應手。
⑤ 你好我想問一下配置EditPlus時C#編譯器版本過低怎麼處理
抱歉,我不熟悉C#語言。
如果提示版本低,請更新至最高的版本。因為有些舊版本可能不支持一些新的參數。
⑥ C語言的編譯器為什麼有許多不同的版本並且在不同的編譯器版本下C語言的語法規則也不盡相同
新的版本都是基於舊的版本升級過來的,以此來改善編譯器的性能、增加對新平台的支持以及提高競爭能力。
不同的編譯器支持的標准語法是一致的(不然沒資格稱C編譯器),但是每個編譯器自身可以添加額外的語法、庫來擴展語言的表達能力,這就是所謂的xx編譯器擴展。使用語言擴展通常能獲得較高的性能和靈活性,但是損失了跨平台性。
不僅僅是編譯器有很多版本,語言本身都有很多版本,目前C語言的版本是C11,下一個版本為C1y。
⑦ 為什麼c語言有很多不同的版本
C的標准本來就有多個版本,目前編譯器採用的標准比較常見的是ANSI C和C99。另外語言標准中也存在未定義行為,留給編譯器實現自己去定義。各種編譯器對標準的實現也未必完全遵守(C還好,C++這種特別復雜的語言就很難做到完全遵守標准了),而且往往還增加一些自己的擴展,預定義宏之類的。這些都給跨編譯器編碼帶來麻煩。不過總體而言C是個比較單純的語言,除非程序員故意,一般搞不出太多給編譯器出難題的花樣。
⑧ C編譯器的選擇
如果你在windows平台
那麼不建議你用gcc
或者你必須要慎重選擇gcc的版本。
有些gcc的版本在windows平台編譯出來的東西有問題。
mingw是一套包含了gcc的編譯環境,包括編譯器連接器匯編器等等。
IDE就是類似visual studio 2008這種以工程為集合點的開發工具包。
mingw本身只是編譯工具集合,不能用來寫程序,IDE是用來寫程序的,幫助你快速開發。
g++是用來編譯C++程序的。
IDE就是集成開發環境。
你的問題太多,很多可以google到,
希望下次不要問這種太膚淺的問題。
⑨ 適合win10系統的c語言編譯器
桌面操作系統
對於當前主流桌面操作系統而言,可使用 VisualC++、GCC以及 LLVM Clang 這三大編譯器。
Visual C++(簡稱 MSVC)只能用於 Windows 操作系統;GCC 和 LLVM Clang除了可用於Windows操作系統之外,主要用於 Unix/Linux操作系統。
像現在很多版本的 Linux 都默認使用 GCC 作為C語言編譯器,而像 FreeBSD、macOS 等系統默認使用 LLVM Clang 編譯器。由於當前 LLVM 項目主要在 Apple 的主推下發展的,所以在 macOS中,Clang 編譯器又被稱為 Apple LLVM 編譯器。
MSVC 編譯器主要用於 Windows 操作系統平台下的應用程序開發,它不開源。用戶可以使用 Visual Studio Community 版本來免費使用它,但是如果要把通過 Visual Studio Community 工具生成出來的應用進行商用,那麼就得好好閱讀一下微軟的許可證和說明書了。
而使用 GCC 與 Clang 編譯器構建出來的應用一般沒有任何限制,程序員可以將應用程序隨意發布和進行商用。
MSVC 編譯器對 C99 標準的支持就十分有限,加之它壓根不支持任何 C11 標准,所以本教程中設計 C11 的代碼例子不會針對 MSVC 進行描述。所幸的是,Visual Studio Community 2017 加入了對 Clang 編譯器的支持,官方稱之為——Clang with Microsoft CodeGen,當前版本基於的是 Clang 3.8。
也就是說,應用於 Visual Studio 集成開發環境中的 Clang 編譯器前端可支持 Clang 編譯器的所有語法特性,而後端生成的代碼則與 MSVC 效果一樣,包括像 long 整數類型在 64 位編譯模式下長度仍然為 4 個位元組,所以各位使用的時候也需要注意。
為了方便描述,本教程後面涉及 Visual Studio 集成開發環境下的 Clang 編譯器簡稱為 VS-Clang 編譯器。
嵌入式系統
而在嵌入式系統方面,可用的C語言編譯器就非常豐富了,比如:
用於 Keil 公司 51 系列單片機的 Keil C51 編譯器;
當前大紅大紫的 Arino 板搭載的開發套件,可用針對 AVR 微控制器的 AVRGCC 編譯器;
ARM 自己出的 ADS(ARM Development Suite)、RVDS(RealView Development Suite)和當前最新的 DS-5 Studio;
DSP 設計商 TI(Texas Instruments)的 CCS(Code Composer Studio);
DSP 設計商 ADI(Analog Devices,Inc.)的 Visual DSP++ 編譯器,等等。
⑩ unix下C編譯器版本如何查看
常用的編譯器有gcc, clang, c-compiler, xlc(AIX)等。一般他們會綁定到cc(軟連接), 所以你可以查看下cc指向哪個連接,如果遵循GNU語法,那麼看版本就是cc --version. 一個系統可以裝多個版本的多種編譯器,那麼就可以看下$PATH變數中優先哪個生效?當然還有其他編譯器,如intel 廠商的。可以看man XXXX 然後搜 version.