剛學C語言,課上只是上理論的。有自己開過電腦打過代碼,那個電腦上的是C free。想在自己的電腦上下一個練練C,書本上推薦Visual C++ ,但是我只下到了這個visual studio,而且不知道怎麼用。


更新: VS2019 16.8 開始支持 C11/17 語核的非可選部分(例如 _Generic )。注意 C99 中有些必須支持的內容從 C11 起改為可選。而標準庫部分除了 C++11 與 C11 的共同部分,其餘工作尚未完成。

另外 aligned_alloc 因為 Windows 堆實現模式,目前沒有支持的計劃。

----

MSVC 沒有完整支持 20 年前的 C99 標準。你看下是否適合吧。

MSVC 實現的標準 C 功能有:

  • 完整的 C94 ( C89 + 後續寬字元支持)
  • 不完整的 C99 語核(缺複合字面量、非常量長度數組、 T [static N] 函數參數等)
  • 少數 C11 中標準化的擴展(如匿名 struct/union 成員)
  • C99 標準庫
  • 包含於 C++ 的 C11 標準庫部分(有少量缺失)
  • 與 C11 標準略有區別的 _s 系列函數

基本上還是不要把 MSVC 當成用 C 開發的東西了。如果需要 VS 的話可以考慮 Visual Studio + Clang 。


你課本上那點東西是沒問題的,反正VS2019不支持的部分你極大概率用不上


不能,微軟從不開發C語言編譯器。

請使用C++的C語言模式代替(逃


可以用,我覺得部分答主一刀切就說vs不支持c語言,這種說法是不負責任的

  1. vs是ide,支持使用不同的編譯器,clang,msvc都行
  2. 最好的選擇是clang,支持最新標準,而且大量兼容gcc擴展
  3. cl也只有少部分特性不支持,默認是使用後綴名區分c和c++,也可以用 /Tc 強制指定
  4. gcc也能用,但智能提示出錯,而且不能調試

綜上,開發c語言建議vs搭配clang編譯器使用,配置方法可參考https://devblogs.microsoft.com/cppblog/clang-llvm-support-in-visual-studio/


可以,而且windows下入門我比較推薦VS,原因很簡單:

新手最大的障礙是debug,而這恰恰是VS的優點。

VS對新手最大的優點有兩個:

1、VS漢化很棒,編譯報錯信息基本都能看懂,不存在英語門檻。即使不懂英語,也能一看就能知道幾行哪裡出了什麼錯,十分方便定位。

2、VS查看堆棧、打斷點/條件斷點/次數斷點、查看內存、跟蹤/修改變數值等debug方法的學習成本極低,十分方便調試。

這些對新手的重要程度遠比什麼C99標準是否完整支持重要。很多人都抱著一種何不食肉糜的心態來選取自己心目中最好的IDE或編譯器,全然不顧剛上手的人最需要什麼。如果是新手上路,我甚至最推薦DEV,因為學習成本更低,這樣他才能將重點放在學習語法上,而非選擇IDE上。然後再慢慢深入到VS上。直接上手VS稍微有一點困難,但遠比gcc+gdb學習成本低得多。

每一個環境都有缺陷,VS對新手最大的缺陷就是scanf默認不支持,比較難受,但是解決成本也不高,但在教學方面的優點確實突出。重點是我們是程序員,要能分析需求,而且要能根據客戶的具體需求來選擇,而不是僅評價性能。他的確有諸多的不好,但是最適合眼下,那就是你了。所以我還是很推薦的。

祝好。


可以的,畢竟沒人攔著你在 VS 里用 Clang + CMake 不是(逃


一群人在說C99那些個VLA啥的,問題是這玩意兒你學C語言能遇上幾次啊?從網上抄100個C程序99個都能編譯過剩下一個小改改就行你還要啥自行車?

誰也沒指著C語言吃飯,當語言律師也沒啥前途,反正這個階段寫程序就是玩,有的玩你就玩唄。


其他答主可能都已經工作或者是浸淫C語言好多年的人了,不太了解你的真實需求,那就讓我來答一下。

先說下軟體。我高三自學C語言用的是vc++6.0(這個真的不推薦用),大一開C語言課的時候老師推薦的Dev C++(推薦使用),然後我自己載了個vs2015做課設用,後來換vs2017。

回到題目上來,剛學C語言,又只是練書上的內容,那就用Dev C++,你可以網上下載一個壓縮包解壓即用,也不大,大概幾十MB吧。不要聽大佬們說它怎樣怎樣,起碼我C語言的理論和課設,C++的理論和課設,數據結構(c++)的理論和課設,它都能勝任。現在大二上學期快上完了,以後就是上java課了。你看我這一路走過來Dev C++是完全夠用,而且我們這邊有幾個程序設計大賽的指定軟體就是Dev C++。大佬說的那些問題,我估計你整個大學生涯都不會遇到。除了一個問題……現在書上不是都寫的void main么,你得改成這樣:

int main() {
//代碼
return 0;
}

不然它會報錯,讓你的main函數必須返回一個值,不能是void(就是不返回值)

當然你也不用卸載你的vs2019,又不是不能共存。但vs2019是真的好用,就是對你來說可能會有點水土不服。你先用Dev C++熟悉了C語言編程的一些最基礎的知識以後,發現問題能自己解決(或者google,百度解決),會Debug(起碼得知道怎樣用斷點吧……),又有空餘時間,那就可以試試看使用vs2019了。不得不說vs2019的各種功能還是很舒服的。要舉個例子的話,vc++6.0就像是毛坯房裡面放張硬板床和其他傢具,簡陋但能滿足基本需求,能住人。Dev C++就像是小康家庭的精裝房,住的舒服,要啥有啥。vs2019就是大豪宅大別墅,裡面所有東西都很豪華很高科技,甚至會大到你迷路,甚至你在裡面住了一年了還有很多地方沒去過,甚至你燒個蛋炒飯都不知道他的高科技灶台要怎麼開,高科技洗碗機要怎麼用。

咳咳,扯遠了。

就站在萌新的角度看,首先就是創建項目的時候要新建空項目,或者選控制台應用之後選空項目,別有預編譯頭那些「稀奇古怪」的東西。創建好以後,在左邊的解決方案資源管理器里的源文件那裡,右鍵,添加,新建項,然後選C++文件(別問為什麼),但是下面的名稱記得把後綴改成.c(比如main.c)。創建完之後還有一步,在第一行先複製粘貼一個這玩意兒:

#define _CRT_SECURE_NO_WARNINGS

這是用來關閉安全警告的,不然你用scanf或者fscanf之類的函數會報錯,書上一般就這麼寫,不會給你整個scanf_s啥的。

到這裡前置準備就算是完成了,你可以盡情編寫你的代碼了。

等到有時間你可以去學一下git,然後在github之類的網站上實踐一下,建立一個私有倉庫,然後做一些提交更改,創建分支,合併分支,拉取代碼之類的操作。不得不說vs2019配合git是真的很好用。

其實要是想避免那些大佬們說的東西,你可以折騰一下vscode+clang(網上教程也一大堆了),輕量,美觀,好用,而且你以後要是換linux系統的話也可以用(linux上可就沒有vs2019或者Dev C++這種東西了)

當然要是換linux的話甚至可以直接vim寫代碼然後cmake,還有其他各種方法,不過那些東西就太遠了,並且我也不是很了解,而且和題目無關,就不展開說了。


可以.

如果只是玩你完全可以按自己喜歡的方式來,

Visual studio 太大,安裝賊慢,還對新標準支持不完整,逼格太低沒法當語言律師,不喜歡,換

Visual studio code 配置太麻煩,插件下載慢,一堆config搞不懂啥玩意,我就喜歡那種上手就能幹的,不喜歡,換.

DEV C艹 逼格太低,還不能看asm,換.

VIM emacs + gcc 我就想要個蘿蔔,不想知道蘿蔔怎麼種出來的也不想學怎麼給蘿蔔雕花,換.

你覺得哪一個自己用的舒服,用就是了,別整天糾結語言的新標準特性,大部分情況就是做個蘿蔔燉排骨,卻整天糾結這個蘿蔔能不能雕花,真的,一!點!意!思!都!沒!有!

我寫了十餘年的C,用C+Script的方式解決了N個從底層驅動到VM機到圖形交互的項目問題,現在用的還是Visual Studio 2010仍然使用C89標準(可能帶有少數擴展)寫程序,包括但不限於上面的開發方案都用過.一堆新標準新特性你要我用我大多也能用.

我就搞不明白了,這樣寫出來的程序是不好用還是有bug什麼的.

C11寫的1+1可以等於2,我C89寫的就必須等於3?

還是說甲方會可以跑到我屏幕面前指著我大罵:麻蛋你個菜雞碼農,給我寫的項目不是最新標準的C寫的,沒寫makefile來編譯,調試也上gdb不用命令行,我要和你解約.

在我看來,至少大部分的新特性,要不解決的就是少打兩個字母的問題,要不就是一些大半輩子都碰不到的問題,有些確實解決了一些實質的問題,比如一堆回答在說的VLA,有用么,有的時候還真有用,寫STFT,DWT時我是一萬個想用VLA來開個計算緩存,但臣妾辦不到啊,我不想未來某個時候,這個程序用在了某個嵌入式環境的編譯器上時又報了一堆錯,與其到時口嫌體正直地老老實實改回老標準,你幹嘛不一開始就使用老標準來寫,是老標準寫出來的不好使了還是說新標準一腳把老標準踹開說以後都不再支持了?

鑒於我以前的工作環境,大半時間再做一些信號處理和分析的演算法,另一半時間在和一堆怎麼便宜怎麼來的新晶元新環境戰鬥,在早期的時候代碼移植幾乎天天就是在做一堆編譯器特性和新老標準的戰鬥,後來我也學乖了,與其裝一個沒人看的逼,還不如老老實實回歸傳統,至少到現在,這種移植問題是清凈多了.

新標準新特性這種東西,也不知道是我太low還是我書讀的少了,根本不能用來說事,至少目前我是沒有碰到過什麼一定要上新標準才能做出來的邏輯和演算法實現,老標準一樣可以實現的很好,有些地方也許不是很方便,但折中繞一點點小彎幾乎不會出太大問題,當然有些變動較大的老老標準的寫法既不方便可能未來也不會再有支持,但在我從業之年,目前還沒碰到.

但不管C代碼怎麼寫,一個原則是----至少我得保證這一份代碼只要不是需要糾結到大小端機還是是不是同一套浮點標準等一些細枝末節的奇特環境時,在大部分時候,這個代碼是拷貝過去是能直接用的.

我用C寫代碼圖的不就是移植性么,為什麼要引入一些可能不被支持的特性,我追著新標準新特性跑是會分我兩斤大米么,等這個標準完全普及到幾乎所有用得到的編譯器後,我再換不行么?

另外就是開發環境,我就又想不明白了,難道不是怎麼方便怎麼來么,是非得拉插件擼config彰顯自己特立孤行風華絕代,還是非得寫makefile好讓別人覺得自己不那麼low也是個專業碼農了,IDE簡化編譯調試操作,降低入門門檻和學習成本就那麼羞恥?用我用了n年的xx配置的環境寫代碼一樣超級快和一個習慣集成IDE開發的用戶杠出優越感是有意思還是甲方會因為這個多付你幾塊錢?

回答一堆推薦VSC瞧不起VS的,當然VSC我也用,但只是在沒有VS的情況下

IDE寫C最重要的一點,不是支持了什麼新標準新特性,而是能否提供一套完整的,方便的,快速的調試與性能分析方案.

畢竟寫代碼,基本上8成以上的時間,我們都在和debug戰鬥,而這個debug的戰鬥中,指令斷點基本解決了90%的調試內容,但一些真正難找又很常見的比如一些內存越界寫造成的bug和一些性能瓶頸引發的實時性無法達標的問題尤為頭疼,如果一個開發環境無法提供一系列比如內存斷點調用棧跟蹤與性能收集方面的功能,開發效率上絕對大打折扣,這個根本不是玩玩特性語法糖就能解決的.就是需要一套完整的工具鏈,而這個工具鏈的完善程度(包括一系列操作,功能和學習成本上的評估)直接在很大程度上決定了一個項目的開發效率.

VS的那一套調試工具,從內存調試到性能評估,哪不香了,乃至於香到即使是一些硬體平台相關的項目,我都會把一些平台無關的邏輯處理代碼剝離出來單獨用VS調試,又快又好,真的,我現在看到gdb,windbg就噁心,真的,看到命令行我就反胃,我就是那麼low,我就是那種又不想花時間學,又不想花錢,又想快點把問題解決了的白嫖怪.我知道我這麼說肯定又有人跳出來,玩意碰上某某情況怎麼辦,只能用gdb沒有VS,VS調試功能也不如gdb強大,某某情況還是要用gdb.

那隻能說抱歉,你說的問題是你的問題不是我的,對我要做的工作而言,這個不僅方便還完全夠用了,所以為什麼還要去折騰那些有的沒的或者是根本沒辦法直接滿足我功能需求的.我不是VS吹也不是VS的ncf,以後如果某個開發環境我用起來比VS還順手的,我會毫不猶豫另尋新歡(鑒於我本身比較懶,那種看了一天還摸不著頭並打著"用的久了你會發現比vs還好用的旗號"的就算了,老大不小了我人生沒多少時間把一個玩意"用的久")

真要裝逼,我拿一本&&>去圖書館裝作看得懂的樣子那搖頭晃腦,效果不比這個好得多?


你可以用vs2019來弄c語言和cpp。其他人說的一些觀點是不正確的。因為你可以在自己電腦或者遠端配置linux開發環境,用vs2019做編輯器,這樣就不會使用微軟的編譯器了。其他的答案說的vs自己的編譯器對c標準支持的不好是事實,不過你完全可以在vs裡面進行linux的c,cpp遠程開發調試,vs2019本身對這個支持還是比較好的,我就是這麼做的!包括調試。所以別聽他們瞎扯,win10現在自己就帶linux系統,開個ssh就可以了,放心玩耍吧

遠程開發

遠程部署調試

源代碼了執行文件拷貝到指定目錄

部署的目錄

各種編譯器設置

我看有的回答裡面竟然有好幾個微軟的,讓我很詫異呀,社區版都推出來的東西,微軟內部應該早用上了才對。當然有的大佬推薦vscode也是沒有問題的,我兩個都用妥妥的沒問題,搞起來吧!


有些答案有明顯的誤導,什麼時候用32/64位來評價一款開發工具的優劣了??

你讓一個初學者去配置VSCODE+GCC環境??或者建議去LINUX用VIM編程??不要誤人子弟好么?

Visual Studio 2019作為開發工具還是非常厲害的,現在安裝起來也不麻煩,對初學者比各種編輯器+編譯器組合友好的多,畢竟剛開始很多人連編輯器和IDE都分不清楚。所謂的完整的C標準你99.99%不會接觸到那些邊緣地帶,放心用就是了。


不能。Visual Studio 不支持 C,只支持 C++。


建議裝個linux虛擬機用gcc。這是目前工業界實際生產場景中最常見的方式。你目前的應用場景是學習,選擇環境建議考慮如下兩點:

  1. 短平快:不要在環境搭建和部署上投入過多精力成本
  2. 與實際應用場景接軌:你所學的所有現在工業界不用的東西都是無意義的沉沒成本

如其他答主所說,現今Windows+Visual Studio的平台下確實不太適合純C的開發(雖然武斷說VS不支持純C也是不合適的,只是不適合+沒必要。事實上調用純C庫的C++項目比比皆是)。目前最常見的純C應用場景非伺服器端linux莫屬。代碼編輯可以用本機Visual Studio Code,可以直接編輯遠程代碼或者手動上傳都行。裝個虛擬機+600多M的linux鏡像即可。gcc自帶的。

另外,VSCode可以裝純C插件當編譯器用。這個我沒了解過就不亂說了。


沒人用過Code::Blocks嗎,至少上學階段夠用了。


可以啊,沒問題。

首先,安裝的時候把那個第二個使用的C++桌面開發勾上。

然後,點擊文件-&>新建-&>項目,左側選Visual C++,中間那個大框里選擇空項目,在下方選擇你想把項目放在的地方。

然後它就會給你生成基本的項目目錄結構。完了之後,在右側的解決方案資源管理器當中右擊源文件,添加-&>新建項。

在彈出的框里選擇C++文件,然後在下方的文件名里把後綴設置為. c,這樣它就會按C語言來處理這個項目。

然後你就寫吧,寫完了之後點擊工具欄里綠色的播放按鈕,它就自動編譯並以調試模式運行了。

寫的時候,記得引入頭文件stdlib. h,並在程序結尾前寫上,是system("pause") ,不然程序運行完就立刻關掉跳出來了,看不清結果


可以,為什麼不看看 MSDN 裡面的的幫助文檔呢。。。。。。理論上只有這麼幾步

  1. 打開 Visual Studio
  2. 根據提示創建一個你想要的工程(如果是新手,那大概就是控制台程序或者空程序)
  3. 完成源代碼
  4. 編譯生成可執行文件
  5. 調試。如果發生任何錯誤,返回3
  6. 發布

其實和上古的那些 IDE 相比複雜度並不更高,如果覺得還是太眼花繚亂可以使用 clang 或者 gcc。雖然這些對於新手可能繁瑣了一些,也可以選擇在線編譯,參見這個

求推薦一款好用的C/C++ 在線編譯器??

www.zhihu.com圖標

其中有一些就是一個簡單的編譯器,有些會將 Linux 交互也放出來。。。

順便一提雖然 Viusal C/C++ 和 C 是不一樣,但是Visual C 並不是辣雞,如果你是說 IDE,那麼它確實已經過時了


初學用gcc加記事本。了解基本的編譯流程。在windows上用gcc的話安裝mingw.


別聽這群大佬瞎雞巴扯淡。

剛入門就用dev,等過一段時間在換別的。我剛開始就聽了這幫大佬的苦口婆心,我尼瑪連include&具體幹啥用的都沒整明白,就讓我建個工程??

別一開始就整那麼高大上,以後有的是機會讓你裝逼,話說我看我們學校acm大佬用dev,也沒影響人拿獎。


雖然VS很好用,但上面這坨回復,估計樓主已經打鼓了。

找個純正的Linux環境,然後vs code遠程開發是最合適的,這樣符合使用習慣又不用轉mingw什麼的。

vs code麻煩在於配置和插件選擇,很多老鳥在用的前提是他知道都是幹什麼用得和怎麼用。

如果不是深入使用,只是課本學習,簡單C開發的vsc環境其實很簡單,百度不少的,深入用就是以後的事兒了。

可以玩,但我不建議你在windows平台下玩c/c++語言,c這種准高級語言會和操作系統有很深的耦合。比如說你做個socket編程,你會發現windows和linux寫法就不通用。我不是說windows下c編程沒有用哦,只是linux下應用場景更多,使用也更廣泛。

還有就是很多朋友提到的標準的問題,你要是學生的話,寫作業盡量和老師用一樣的環境,要不然你程序在老師那裡跑不了,你說你冤不冤。

當然,再回到ide,我覺得vs還是不錯的,除了創建項目時候選擇有點過多,但用起來之後,編輯、跳轉和debug都非常適合新手。


推薦閱讀:
相关文章