初學 C 語言,Windows 7 系統下用什麼 IDE 比較適合?


QtCreator( http://doc.qt.io/qtcreator/ ), 就是調試器要另外安裝配置( http://doc.qt.io/qtcreator/creator-debugger-engines.html ), 別看名字就以為只能做QT開發, 寫 c/c++一樣是爽死.

  • 簡潔而跟得上潮流, C/C++11無壓力, 還推薦VC6之類的化石,不是吧
  • ctrl+k 快捷打開 文件/類/方法, 用VS的人喜歡在文件樹上一個個翻我都快睡著了(vs2013也有個文件過濾,效率那個低)

  • FakeVim, 這個用著比真正的vim還舒服
  • 對寫Qt的人還有F1隨手看文檔


對於Win7上的C/C++初學者來說,用微軟自家的Visual C++ 2010 Express,正版,免費,相對小巧。是最好的選擇,沒有之一。附上下載鏈接:http://www.microsoft.com/visualstudio/chs/downloads#d-2010-express

一個好的IDE可以幫助你把注意力集中在學習語言本身,避免因為各種環境因素引起的挫敗感,從而在早期放棄深入學習。

IDE本身就是一個很好的學習語言的環境,比如說函數名和參數提示和自動補全,讓初學者不用在參考資料和編程環境中做大量的上下文切換;直接跳轉到函數和類型的聲明位置,讓初學者不用去系統頭文件目錄里大海撈針般的尋找,特別是頭文件往往都是幾重包含的更讓初學者無從下手了;語法高亮,讓初學者很清楚的認清各種語言要素和發現低級的語法錯誤;圖形化的調試工具,利於初學者容易獲取取最直接的程序內部運行狀態。這些都是對學習語言本身有極大好處的。

等從newbie成長成牛B脫離IDE就是很自然的事情。不過很多項目本身就是在IDE上完整實現的,脫離不了也不需要脫離IDE。


對於初學者而言,對於C/C++而言,對於Windows而言

沒有比Visual C++ Express更合適的了


Dev C++。。用VS就是大材小用好么。。。這個東西已經夠初學者玩了


Qt Creator, Qt 5.1,其實比其他的都好,除了調試不如VS,其他功能都不輸VS2010的


我建議DEV C++,新手不需要過早了解工程的概念,單工程IDE的話

啊哈C不推薦,

DEV C++很好 而且它的低能可以讓新手了解更多細節問題。

它可以一鍵編譯運行,內置gcc,這些問題初學者都是不需要立即掌握的,也就是說,它彷彿是專為小白打造一般,很適合題主的情況。

我現在還拿它寫JNI的C++那部分呢。


這問題好老了

我來答個最新的

用VS2015 Community


我個人建議弄個 Cygwin 或者 MinGW 然後使用裡面的 gcc 。目前在這方面集成得比較好的 IDE 有比如 Qt creator for MinGW(這個 IDE 其實做得還行,雖然我個人認為初學者根本就不需要 IDE),它直接調用 MinGW 的編譯器。

如果用 Cygwin 的命令行,完全可以不需要 IDE ,用 vim/emacs 編輯,然後用 make/gcc 的體系編譯即可,甚至可以用 gdb 調試。而且如果願意的話可以選擇 llvm 。

Visual Studio 的問題在於它是一個 C++ 的 IDE,對 C 語言的特性支持不太好,不支持當前的 C 標準 C11 ,甚至都不能完整的支持十多年前上一代的標準 C99,只能支持二十多年前的 C89,這對你學習 C 語言顯然會是個阻礙,越來越多的開源代碼使用 C99 以及 C11 標準編寫,這意味著不能夠在 VS 當中正確編譯。

當然,如果你只是用 VS 當作編輯器,使用外掛的編譯器進行編譯就沒有問題。不過如果這樣的話,何必要用 IDE 。

我建議不要使用 VS 或者 VC 去學習 C 語言,除非你想要學習的不是 C 語言而是 C++。當然,就算是 C++,VC6 也是不合適的,因為 C++ 的上一代標準為 C++98,這個標準在 VC6 的時代還沒有完整的實現。要想學習 C++ 使用現在的 VS 才行。

當然,用 MinGW 都不會有問題,因為他們對標準的跟進還算比較速度。


mingw有gcc編譯器,另外推薦sublime文本編輯器,或者vim,IDE什麼的不好玩的~


就用visual studio,越新的越好,具體用到哪個版本取決於電腦配置(越新的越大越卡。。)。如果不想用盜版,可以去微軟官網上下免費的Express版,初學者絕對夠用。

如果不想用MS產品的話,Eclipse也還行,但對初學者還是麻煩了一點。

不要用VC6。時代在進步,為什麼要回去用上世紀的產品呢?VC6的語法各種不標準(沒辦法它比標準還早),何必自找麻煩呢。

強烈反對不用IDE。」學語言「和「學程序」是兩回事,不要攪在一起。IDE確實屏蔽了很多細節,但細節不就是要放在後面學的么。如果想一開始就搞清楚所有方面,那不如去寫彙編算了。

==============================

時隔好久又看到這個問題。。粘貼一下之前對常溪玲的回復吧:

嗯,如果要做一個C程序員,那多文件聯編是最基本的要求。我承認我直到現在都不是一個合格的C程序員,不過我覺得大多數人學習C的目的並不是為了成為C程序員,而是只是為了對基本的過程式編程有一個了解。個人覺得在學操作系統之前,C都是一個不太需要深究的東西。

比如說「函數」,它最重要的作用,是把獨立的功能獨立地實現以方便復用,這一點無論在什麼語言中都是一樣的,學生必須要理解;但是說把定義寫到.h文件這種具體形式,那換種語言就完全不一樣了。我認為以C入門來學習計算機科學,最重要的是學習編程過程的共性,而不要把過多的精力放到只有C才有的特性上——省點時間來學習真正的「計算機科學」吧。

我覺得我們的分歧可能在於學C的目的。你可能希望學生真的精通C語言本身(如果那樣的話,我同意你的觀點),而我則不希望他們花太多力學一門語言。如果要回到樓主的問題,就得問他學習的目的是什麼了。


你問的是 win7,以及要求 IDE。

那我說的話,肯定是 VS 了。VS 版本 &>= 2005 均可。(注意,VC6 理應被淘汰,推崇 VC6 的都是上個世紀的程序員,在堅守他們的舊習慣)。

由於 VS 是一個很大的軟體,所以,實際上安裝的時候,你可以選擇自定義,選擇你需要的組件和語言,這樣會另安裝後的體積小很多,時間也節省很多。(當然,你最開始的時候可能不知道哪些東西可以不必勾選)。.

同理,msdn 安裝的時候,也勾選對你有用的,這樣可以節約硬碟和安裝時間。現在比較新的版本的 VS,基本上傾向於 online 的資源,如果你網速還行,那麼你也可以不需要安裝本地源(因為這玩意也是體積不小的)。


初學者絕對不要用 IDE,老老實實給我敲命令行手工編譯鏈接。一開始就用 IDE,從沒接觸過命令行的孩子光靠 IDE 根本沒法學會什麼叫 TU,學 C/C++ 不懂 TU 的話項目稍微有點規模的時候遇到鏈接錯誤就整個抓瞎,到處亂改一陣,最終就算通過了編譯,整個結構也是錯的。所以,初學的時候別怕麻煩,命令行根本不是什麼高深莫測的技術,沒什麼了不起的,多敲幾個字也累不死,踏實點吧。

把評論里的一些內容複製到答案裡面供參考:

針對 @yskin 的回復:

http://stackoverflow.com/questions/1106149/what-is-a-translation-unit-in-c

針對 @王洋的回復:

初學者關鍵點是語言細節,不是編譯細節,觀點沒錯,但把命令行編譯看作編譯細節這點我不能贊同。最基本最簡單的命令行編譯並不複雜,也不難學,就因為手敲幾個命令就把初學者困惑到摸不著頭腦的可能性是不存在的。如果你在實際生活中從事過教學工作的話,你就會明白一開始沒接觸過編譯命令行的學生在稍微大一點的項目里滿世界亂改修正各種各樣的 LNK 錯誤是何等的窘迫了,不實際接觸一下命令行,光靠純理論的講解,想要理解 TU 是很困難的。

你的觀點是說初學的時候不要手工在命令行下編譯,等進步以後再用。我的看法恰恰相反,手敲命令行既費時又費力,在初學的時候出於學習的目的才應該手敲。等學會以後,知道編譯命令行是怎麼一回事之後就不要再一個個手敲了,選一個稱手好用的編譯工具吧。

針對 @梁博文的回復:

為什麼那麼多人一提到編譯命令行就認定了這是初學者不需要掌握的細節呢?的確初學的時候糾纏太多細節沒有必要,有很多細節的確還是往後放一放等到學到一定程度之後再補會更好一些,可是編譯命令行算是很偏僻的細節么?無數初學者由於理解不了什麼叫 TU,面對鏈接錯誤的時候那種茫然無助的感覺大家都沒體會過么?還是說大家都覺得鏈接錯誤屬於「高級話題」,初學者也完全沒有必要去面對呢?

如果目標只是學 Java 的話初學時的確沒必要了解命令行,同意這一點。Java 語言本身的概念並沒有必須通過命令行才能理解和掌握的部分,因此初學時不了解命令行,對於學習是不會造成太大影響的。

可是,如果是想要學 C 或者 C++ 的話,命令行是必須在初學時最開始的階段引入的。「第一年只要寫一個 c 文件就夠了」這點我完全不能苟同,多文件聯編是 C 語言學習裡面最基本的技能之一,教學時學到「函數」這部分的時候就應該引入多文件聯編和 TU 的概念了。C 語言整門課程也就是半年的時間,「第二年也最多不過兩三個 c 文件」這無論如何都是說不過去的。


我過來純粹來頂 @pansz 的~ 人家都說了是 C 語言,未必是 C++,讓人家用 VC 的都是什麼居心?非得把問題複雜化才甘心嗎?有人提出 issue 讓 VC 支持 C99,你們的微軟大人是怎麼回答的?

再者也想反對一下告訴初學者只搞語言不必關心編譯細節的童鞋……這裡說的是 C 語言,不是其他那些編譯步驟簡單到即使不去關心也可以輕鬆入門的語言。除非他有其他語言的底子,否則連編譯和鏈接都區分不開的人你讓他在程序出錯後怎麼安心搞你的語言細節呢?


WARNING: Do Not Use An IDE

An IDE, or "Integrated Development Environment" will turn you stupid. They are the worst tools if you want to be a good programmer because they hide what"s going on from you, and your job is to know what"s going on. They are useful if you"re trying to get something done and the platform is designed around a particular IDE, but for learning to code C (and many other languages) they are pointless.

NOTE

If you"ve played guitar then you know what tablature is, but for everyone else let me explain. In music there"s an established notation called the "staff notation". It"s a generic, very old, and universal way to write down what someone should play on an instrument. If you play piano this notation is fairly easy to use, since it was created mostly for piano and composers.

Guitar however is a weird instrument that doesn"t really work with notation, so guitarists have an alternative notation called "tablature". What tablature does is, rather than tell you the note to play, it tells you the fret and string you should play at that time. You could learn whole songs without ever knowing about a single thing you"re playing. Many people do it this way, but if you want to know whatyou"re playing, then tablature is pointless.

It may be harder than tablature, but traditional notation tells you how to play the music rather than just how to play the guitar. With traditional notation I can walk over to a piano and play the same song. I can play it on a bass. I can put it into a computer and design whole scores around it. With tablature I can just play it on a guitar.

IDEs are like tablature. Sure, you can code pretty quickly, but you can only code in that one language on that one platform. This is why companies love selling them to you. They know you"re lazy, and since it only works on their platform they"ve got you locked in because you are lazy.

The way you break the cycle is you suck it up and finally learn to code without an IDE. A plain editor, or a programmer"s editor like Vim or Emacs, makes you work with the code. It"s a little harder, but the end result is you can work with any code, on any computer, in any language, and you know what"s going on.

說人話:初學者別用IDE啦,直接上Linux Unix...


VS Code,輕量級IDE,支持調試,足夠了。


只用過VC的飄過,挺好挺好,就是有點大


個人感覺還是code::blocks比較好,可以下個集成編譯器的版本。code::blocks的優點是簡單,易用。VC++6.0強烈不建議使用,因為編譯器的版本太老了!感覺除非搞WIN32編程,VC++太麻煩,不好用!


如果是初學C的話,沒必要用什麼IDE工具。寫一些簡單的程序,Makefile也不用寫,複雜的庫也不會用多少。裝個Cygwin/MinGW和GCC,用Notepad++寫代碼有語法加亮就行了。


CLion。

1. 代碼檢查、格式化等,方便初學者提高代碼質量。

2. CMake 構建系統,開放,跨平台。


建議裝Cygwin/miniGW, 這樣可以接觸到GNU Make等一系列優秀的工具, 幫助你更快走上正規.

至於編輯器, 就在Emacs和Vim之間選一個吧.


推薦閱讀:

古箏初學有哪些好的教材推薦?
初學者如何學習MAYA?
現在研一,想學習素描,請問可行嗎,有哪些書籍或是工具推薦?
對於初學者到底如何神秘並且怎麼飲用?

TAG:Windows7 | C編程語言 | 初學者 | C | 集成開發環境 |