1. 適合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++ 編譯器,等等。
2. 我想自學C++編程,請問需要給電腦安裝什麼軟體
1、gcc
GCC(GNU Compiler Collection,GNU編譯器套件)是由GNU開發的編程語言譯器。GNU編譯器套件包括C、C++、 Objective-C、 Fortran、java、Ada和Go語言前端,也包括了這些語言的庫(如libstdc++,libgcj等。)
GCC的初衷是為GNU操作系統專門編寫的一款編譯器。GNU系統是徹底的自由軟體。此處,「自由」的含義是它尊重用戶的自由。
2、llvm+Clang
LLVM是構架編譯器(compiler)的框架系統,以C++編寫而成,用於優化以任意程序語言編寫的程序的編譯時間(compile-time)、鏈接時間(link-time)、運行時間(run-time)以及空閑時間(idle-time),對開發者保持開放,並兼容已有腳本。
LLVM計劃啟動於2000年,最初由University of Illinois at Urbana-Champaign的Chris Lattner主持開展。2006年Chris Lattner加盟Apple Inc.並致力於LLVM在Apple開發體系中的應用。Apple也是LLVM計劃的主要資助者。
3、Watcom C/C++
Watcom C/C++ 編譯器、Watch Fortran 編譯器 經已在不其先前所屬公司Sybase售賣, 而被 SciTech 軟體公司 作為 Open Watcom 開源包 發行。類似於其他的 開源編譯器(例如 [GCC])項目,Watcom C代碼小而便攜, 其編譯器後端(代碼生成器)的目標碼可變。
該編譯器可在DOS、OS/2、Windows等操作系統上運行,並生成各種可運行的(不必是該操作系統的)代碼。該編譯器支持Novell NetWare的 NLM 目標碼。目前正進行 為 Linux、modern BSD (例如FreeBSD) 操作系統 重定目標碼,以便在 x86、PowerPC 及其它處理器上運行。
Open Watcom C/C++ 的1.4版於2005年12月發行,採用 Linux x86 為實驗目標, 支持NT、OS/2等host平台曾有某被棄置的QNX版本,但其編譯所須的庫並未開源發行。當前最近的穩定版是1.9版,在2010年6月發行。
4、Digital Mars
DigitalMars是一款高性能的編譯器,功能包含,快速編譯/鏈接時、強大的優化技術、Contract設計、完整的資源庫、瀏覽HTML文檔,反匯編、庫、資源編譯器等。命令行及GUI版本、教程、代碼示例、在線更新、標准模板庫等等。
5、MSVC系列
與Visual Studio集成發布,微軟自己的編譯器,VS是一個基本完整的開發工具集,它包括了整個軟體生命周期中所需要的大部分工具,如UML工具、代碼管控工具、集成開發環境(IDE)等等。
所寫的目標代碼適用於微軟支持的所有平台,包括Microsoft Windows、Windows Mobile、Windows CE、.NET Framework、.NET Compact Framework和Microsoft Silverlight 及Windows Phone。
3. 熱愛開源的C#之父-安德斯•海爾斯伯格
提起微軟我們最先想到的可能是比爾蓋茨,這個微軟之父,但是對於微軟來說,還有一個人不得不提,那就是我們經常拿來和java比較的C#語言的創造者-安德斯·海爾斯伯格。
安德斯是丹麥人,說起丹麥人,大家第一想到的就是他們的精明,而安德斯在軟體行業顯然是無比聰明的。和其他那些高材生不同,安德斯大學是沒有畢業的,然而即使沒有畢業,他的成就也只能是我們望其項背的。
不知道大家對Pascal這門語言是否有所了解,在大學裡面,安德斯在計算機方面的才華就體現出來了,他獨自編寫了Pascal的編譯器,並且把它移植到了dos系統上。當時一家軟體公司甚至專門聘請他研發公司的編譯器核心產品。
比爾蓋茨是非常愛惜人才的,在了解了安德斯的個人信息後,他非常渴望得到這個人才,於是他親自邀請他加入微軟公司,並且給了他充分的自由和權力。來到微軟之後,安德斯就開始了他傳奇的一生。
來到微軟之後,安德斯首先研發的是J++,一種類似的java的語言,但是由於版權問題,最終擱置了。但是這卻給了他新的啟發,於是他設計了一門新的語言,也就是我們現在在windows上開發經常使用的C#,並且.net體系相當的完善。大多數人喜歡C#的原因主要就是他有一個全宇宙相當好用的編輯器visual studio.據說當時其它語言的使用者對C#程序員都是羨慕嫉妒恨的。可以說正是有了C#,才使得微軟的桌面軟體,web系統,應用軟體得以茁壯成長。
在國內,很多程序員都會考慮或者擔憂一個問題,就是年齡大了是否適合繼續編程。安德斯用他的經歷告訴你,是可以的,直到今天,安德斯依然每天都在寫代碼,依然會經常在github上提交開源代碼,這也是我們為什麼說他熱愛開源。
現在微軟的.net core開源了,typescript開源了,可以說很大程度上有安德斯的功勞。僅以此文感謝那些為計算機軟體發展做出卓越貢獻的人們。
4. 宇宙最好的編程語言python,到底好在哪
首先Python確實很好,但是沒法評判是不是宇宙第一好,貿然評價很容易引來論戰。
然後Python的優點和缺點都很明顯,這樣有個好處,讓人一眼就能判斷一個項目用Python合適不合適。
優點:
1. Python作為動態語言更適合初學編程者。Python可以讓初學者把精力集中在編程對象和思維方法上,而不用去擔心語法、類型等等外在因素。而Python清晰簡潔的語法也使得它調試起來比Java簡單的多。至於哪個更「優雅」純屬個人喜好,但對於初學編程的人Python更直觀應該沒什麼異議。
2. Python作為動態語言有一些強大的架構,可以表達非常復雜的Logic
3. Python有非常強大的支持非同步的框架如Eventlet Networking Library,而據我所知Java要實現這些功能要麻煩的多。也因此Python適合一些可擴展的後台應用。
4. Python作為腳本語言,更適合開發小的應用,而且極其適合在應用發展初期時用來做原型
缺點:
1. 由於Python的優點也無可避免會有犧牲------由於是動態語言,比Java還慢。你可以想像一下編譯器對於沒有typing的變數,需要一個一個check具體type所耗得時間。而Java相比起C++等等本來就不快,可想而知更慢的效果... 但很多人覺得Python code更短小精悍,所以實際跑起來不見得比Java耗時。
2. Java很適合發展跨平台應用,幾乎常見的電腦、智能機都能跑Java。而Python就不一樣了...
關於他們的異同可參考Python vs Java: Key Differences
當然還能列舉更多的1,2,3,4~~,不過說到最後,世上大多數東西都沒有最好,只有最合適。
5. 有什麼好用的C/C++編譯器么推薦下
clang不錯
GCC是最好的,沒有之一。
編譯器幾乎沒有國產的,國內更少有開源的。
gcc最經典
icc在x86上表現優秀
clang/llvm後起之秀
msvc占據Win
嵌入式/小眾的平台:vc6,sdcc,iarcc,keilcc都不錯。
歡迎補充
G++編譯不錯,編輯vsc不錯
題主問的應該是C/C++編程軟體吧(自帶有編譯器),下面我以Windows系統為例,簡單分享3個非常不錯的開發軟體,分別是Dev-C++、CodeBlocks和VisualStudio,感興趣的朋友可以嘗試一下:
01
Dev-C++
這是Windows平台下一個非常基礎、簡單易學的C/C++編程軟體,個人使用完全免費,基本功纖行畝能和使用方式與早期的VC6.0非常相似,沒有任何自動補全、語法提示和錯誤檢查的功能,因此非常適合初學者,對於入門編碼學習來說,非常鍛煉基本功,但在開發效率上有些捉襟見肘:
02
CodeBlocks
這是一個免費、開源、跨平台的C/C++編程軟體,完美支持3大操作平台,相比較功能單一的Dev-C++,CodeBlocks支持自動補全、代碼高亮、語法提示、錯誤檢查等常見功能,除此之外,還自帶有許多工程模板,可以快速創建Qt、Win32GUI等應用,因此開發效率更高,也更適合項目集成:
03
VisualStudio
這是Windows系統下一個非常著名的集成開發環境,號稱宇宙第一IDE,功能強大,不僅僅是C/C++,常見的C#、VB、Python等編程語言,這個軟體都能很好兼容,智能補全、語法提示、代碼高亮等功能非常不錯,除此之外,還支持單元測試、代碼重構、代碼分析等高級功能,因此開發效率更高,也更適合大型項目,初期接觸可能不容易掌握,但熟悉後的確是一個C/C++開發利器,值得學習和使用:
目前就分享這3個Windows環境下不錯的C/C++編程軟體吧,初學入門的話,建議使用Dev-C++等容易掌握、學習的軟體,專注於基本功,多看多練習,熟悉後,可以使用VS、CLion等專業軟體,提帶叢高開發效率,也方便團隊協作和毀森項目管理,當然,除了以上軟體,還有許多其他C/C++開發工具,像Linux下的Vim,Mac下的Xcode等也都非常不錯,網上也有相關教程和資料,介紹的非常詳細,感興趣的話,可以搜一下,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言進行補充。
一般可以使用輕量級的codeblocks
或者直接mac或者linux系統的gcc(不使用ide)
如果想使用在線的話
很棒而且可以選擇標准6. C語言這么厲害,它自身又是用什麼語言寫的編寫過程被稱為自舉
來自一個小白的提問: 「C語言本身用什麼語言寫的?」
換個角度來問,其實是:C語言在運行之前,得編譯才行,那C語言的編譯器從哪裡來?用什麼語言來寫的?如果是用C語言本身來寫的,到底是先有蛋還是先有雞?
我們假設世界上不存在任何編譯器, 先從機器語言說起,看看怎麼辦。
機器語言可以直接被CPU執行,不需要編譯器。
然後是匯編語言, 匯編語言雖然只是機器語言的助記符,但是也需要編譯成機器語言才能執行,沒辦法只能用機器語言來寫這第一個編譯器了(以後就不用了)。
匯編語言的問題解決了,就往前邁進了一大步,這時候就可以用匯編語言去寫C語言的編譯器,我們說這是C編譯器的老祖宗。
有了這個老祖宗,就可以編譯任意的C語言程序了,那是不是可以用C語言本身寫一個編譯器?只要用老祖宗編譯一下就可以了。
OK, 這么一層層上來,終於得到了一個用C語言寫的編譯器, 真是夠麻煩的。
到這個時候,之前那個匯編寫的C語言編譯器就可以拋棄了。
當然,如果在C語言之前,已經出現了別的高級語言,例如Pascal,那就可以用Pascal來寫一個C語言的編譯器。
第一個Pascal的編譯器據說使用Fortran寫的。而作為第一個高級語言的Fortran,它的編譯器應該是匯編語言寫的。
關於編譯器,這里邊有個有趣的傳說:
傳說Unix 發明人之一的 Ken Thompson在貝爾實驗室,大搖大擺的走到任何一台Unix機器前,輸入自己的用戶名和密碼,就能以root的方式登錄!
貝爾實驗室人才濟濟,另外一些大牛發誓要把這個漏洞找出來,他們通讀了Unix的C源碼,終於找到了登錄的後門, 清理後門以後編譯Unix , 運行, 可是Thompson 還是能夠登錄進去。
有人覺得可能是編譯器中有問題,在編譯Unix的時候植入了後門, 於是他們又用C語言重新寫了一個編譯器,用新的編譯器再次編譯了Unix, 這下總算天下太平了吧。
可是仍然不管用, Thompson 依然可以用root登錄,真是讓人崩潰!
後來Thompson 本人解開了秘密,是第一個C 語言編譯器有問題, 這個編譯器在編譯Unix源碼的時候,當然會植入後門, 這還不夠,更牛的是,如果你用C 語言寫了一個新編譯器,肯定也需要編譯成二進制代碼啊,用什麼來編譯,只有用Thompson寫的那第一個編譯器來編譯,好了, 你寫的這個編譯器就會被污染了,你的編譯器再去編譯Unix , 也會植入後門 :-)
說到這里我就想起了幾年前的XcodeGhost 事件,簡單來說就是在Xcode(非官方渠道下載的)中植入了木馬,這樣XCode編譯出的ios app都被污染了,這些app就可以被黑客利用做非法之事。
雖然這個XCodeGhost和Thompson的後面相比差得遠,但是提醒我們,下載軟體的時候要走正規渠道,從官方網站下載,認准網站的HTTPS標准,甚至可以驗證一下checksum。
可能有人問:我用匯編寫一段Hello World都很麻煩,居然有人可以用它寫復雜的編譯器?這可能嗎?
當然可能,在開發第一代Unix的時候,連C語言都沒有, Ken Thompson 和 Dennis Ritchie 可是用匯編一行行把Unix敲出來的。 WPS第一版是求伯君用匯編寫出來的, Turbo Pascal 的編譯器也是Anders 用匯編寫出來的,大神們的能力不是普通人能想像得到的。
對於編譯器來說,還可以採用「滾雪球」的方式來開發:
還是以C語言為例,第一個版本可以先選擇C語言的一個子集,例如只支持基本的數據類型,流程式控制制語句,函數調用...... 我們把這個子集稱為C0。
然後用匯編語言寫個編譯器,只搞定這個語言的子集C0,這樣寫起來就容易不少。
C0這個語言可以工作了,然後我們擴展這個子集,例如添加struct,指針...... ,把新的語言稱為C1。
那C1這個語言的編譯器由誰來寫? 自然是C0。
等到C1可以工作了,再次擴展語言特性,用C1寫編譯器,得到C2。
然後是C3, C4...... 最後得到完整的C語言。
這個過程被稱為bootstraping , 中文叫做自舉。
對於熱愛編程的人來說,有一群一起學習一起解答的小夥伴很重要!
這里有一個 C/C++編程學習交流俱樂部 (群),私信我【01】進入!
還有編程學習文件(源碼,零基礎教程,項目實戰教學視頻),歡迎初學者和正在進階中的小夥伴們!
7. 為什麼說visual studio 是宇宙最強IDE
首先,X-Code只能用於Mac OS X,無法在Windows上原生運行。同樣, Visual Studio只能用於Windows,無法在Mac OS X上原生運行。所以如果你不足夠蛋疼的話,Windows/WP/Xbox程序員根本不會去使用X-Code,Mac/iOS程序員也根本不會去使用Visual Studio。所以兩者沒有可比性。
當然...足夠蛋疼的話,可以這么做:在Mac OS X運行虛擬機運行Windows,並在Windows下運行Visual Studio。在Visual Studio中編寫程序,然後調試運行。最後用共享文件夾復制源文件到Mac主機下,重新編譯,Bang! 編譯器無法找到Windows.h(假設你在編寫C++程序)。於是乎,你只能開始不停用gdb//lldb調試,並開始加入UNIX的API。為了兼容,你還寫了很多Macro(宏)。最後你花了很多倍於別人的時間來完成一個跨平台項目。
-----
很好,你現在知道了在不同系統下編寫軟體需要用不同的API(Windows/Unix)。而且不同系統下,編譯出來的程序無法互相兼容(Win下沒法運行Mac程序、iOS程序不能運行在Xbox上)。
當然...你還會遇到這種情況。一個C#程序員新買了一台Mac,然後興致勃勃地裝了X-Code,打算開始編寫IIS服務端程序。Bang! Mac對你說:「什麼是C#?那個是Java嗎?還有,那個IIS是什麼?比nginx好吃嗎?」在另外一個世界,一個快破產的iOS程序員介於經濟原因,買了台PC機,並嘗試用VS編寫iOS程序。Windows直接藍屏了:「iOS開發包與本系統不兼容」。
-----
很好,你現在知道了不是所有語言在各個系統下都有。你也知道了,開發程序所依賴的開發包也是依賴於系統的。
在用極端例子扯完基礎之後,我可以回答題主了。X-Code和VS除去自帶的開發包之後只是個圖形界面。對於圖形界面的偏好完全取決於用戶(不要問我千元以上的耳機哪個好)以及進行開發的語言。比如開發C/C++/O-C,個人偏好使用X-Code/VS/NetBean (對應Mac/Win/Linux)。開發Java,個人偏好Eclipse。
C# --> VS
LaTeX --> Texpad
Bash/python/Other --> X-Code/Notepad++ (僅作帶有高亮的文本編輯器)