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. qt 跨平台 選哪個編譯器
Qt 跨平台可以選 MSVC 和 MinGW 兩個編譯器。
MinGW 比較方便,配置易上手,但是 WebEngine 是沒有的。 MSVC 也不錯,功能強大,包括了WebEngine 模塊。 如果項目使用到的一些第三方的 lib,或者 dll,使用 MSVC 編譯出來的,那麼推薦用 MSVC(應該是必須,不同的編譯器生產出的庫一般是不兼容的或者兼容效果差)。
3. Vs2022 和 Vs2019 C語言編譯器代碼格式一樣嗎
一樣的,都是MSVC編譯器,沒區別的
4. VS2017 支持C11嗎想測試一下泛型選擇_Generic,但是提示未定義,有沒有什麼解決方法
VS2017自帶的msvc編譯器並不支持C11標准,但你可以通過安裝Clang 3.3以上版本並用Clang作為編譯器來支持C11。
網頁鏈接
5. VS編譯器!
這個和c++沒什麼關系,所有c代碼都可以直接移植,c++向下兼容c,代碼不能用估計是編譯器支持的c語言標准問題.
比如c99或者c11標准,如果是scanf不能用 需要改成s_scanf這樣的錯誤,那就是c標準的問題了,
或者你編譯器要是vs2010以上,十有八九就是編譯器的問題了,修改你的函數吧,新的安全規則比舊的好,學新的沒壞處
6. 為什麼有時用VC++6.0編譯C程序時提示不能編譯,沒相連接的編譯器急!!
C是最古老的編程語言之一,可以編寫80x86/Pentuem等等計算機的程序,當然也能編寫現在的Windows應用程序。
C++是對C語言的一個擴充,完全保留C語言功能,並且實現了面向對象的支持。
VC++是微軟在WIN32平台上發布的C++編譯器,功能很強,但是只適用於Windows平台,典型的代表是VC++6.0。
VC++.NET是微軟繼6.0以後發布的7.0,8.0,9.0等新產品,完全向下兼容,功能也逐漸趨於完善。
Managed Extensions for C++(MC++)這個是VC++7.0/8.0/9.0才有的功能,叫做託管的C++代碼,實際上是一種中間語言,在運行時動態編譯。
總結一下:C/C++是一種編程語言,VC++/VC++.NET是C語言的一種開發工具,類似的工具還有Delphi C++ Builder等等。。。
7. 如果僅考慮 Windows 平台,不用 msvc 而去用 gcc 的理由有哪些
1、大部分跨平台的大型C程序(如ffmpeg)早已完全使用C99標准編寫,而msvc的編譯器CL直到2015年才較好地支持了C99;
2、msvc的側重點是對C++標準的支持以及對Windows SDK的支持,而不是對C語言的支持。
3、msvc的編譯器很難用於生成和環境無關的代碼,用來編譯像Bootloader、系統內核之類的特殊程序時會有麻煩。
4、msvc的編譯器CL的命令行參數和gcc、clang等幾乎完全不兼容,所有的makefile和其他腳本都必須專門為其做較大改動。
5、msvc工具鏈(編譯器、鏈接器、nmake等)的ABI和gnu工具鏈的只有單向兼容,無法鏈接由gnu工具鏈生成的庫。
8. 如何評價 JetBrains 的新 C/C++ IDE CLion
看上去這是一個足夠好用的C/C++ IDE,而足夠好用的C/C++ IDE並不算多。
如果你是一個C/C++程序員,你的IDE選擇有什麼呢?
Visual Studio是Windows下的當然選擇,但是VS的C/C++補全重構功能遠遠比不上C#的相關功能,而且msvc編譯器長期以來支持標準的速度比較慢,使用自有的solution格式也給維護項目增加了很多困惑。
Eclipse CDT和Eclipse本身的缺點很類似。特性很全,但是相對來說bug比較多,比較遲緩。代碼提示和搜索功能和JetBrains的產品差一個數量級。
Netbeans的性能和debugger也一直有點問題。非常喜歡不斷parse代碼。不過支持遠程開發和debug是一個非常好的特性。
Qt Creator KDeveloper其實是兩個相對不錯的選擇,但是在智能感知,項目管理、重構、quick fix這些方面始終有些差距。
(我有一段時間沒有用過VS/JetBrains以外的ide了,這是我原來實驗工具時留下的印象,未必適用於現在的情況。)
如果你滿足於使用Windows平台+msvc編譯器的話,VS+VA X插件可以提供一個很不錯的環境,但是對於使用開源工具鏈的開發者和Linux開發者來說,並沒有太好的選擇。vim/emcas的用戶多,除了性能和遠程開發的方便程度以外,很大程度上是因為這些C/C++ IDE能提供的功能並不比vim+YouCompleteMe提供的特性多。
而就我目前的Beta版使用經驗而言,CLion在這些方面做的很不錯:
非常好的智能感知功能,自動折疊、高亮、自動補全、類型推斷都很好。
Autofix工作的很好。
重構很方便,像inline函數、extract成員函數、常數,pull up/pull down、修改簽名這些功能都有。
調試功能很方便,可以自動解析STL容器。
繼承了jetbrains系ide的很多優點,像方便的vim插件和keymap調整,滾動條預覽,與VCS的緊密集成等等。
跨平台,支持CMake/gcc/clang/mingw/cygwin/gdb。雖然不多,但是其實基本上也夠用了。
簡潔,沒有額外的抽象層,你直接通過控制CMakeLists/CMakeCache來控制項目的編譯。這樣無需額外學習一遍IDE項目相關的概念,而且省去了VS+CMake時每改一次CMakeLists就要generate一次solution的麻煩。
很快,當然我也沒有導入很大很大的項目,不知道結局是什麼樣。
當然,今天的CLion還有很多缺點,比如說一以貫之的吃內存(隨便打開個項目吃掉1G很正常)、比如說還不支持lldb(1.1版本即將支持)、不支持遠程開發調試、不支持makefile/autotools項目、沒有測試框架支持。最大的問題就是,在處理大項目的時候,CLion的性能能跟得上嗎?
不考慮這些因素,CLion是一個很好用的ide。設計合理簡潔、核心功能完成的很出色。而像我開篇就說的,能滿足這個條件的C/C++ IDE幾乎沒有。在使用開源工具鏈的場景下,CLion是第一個讓我有理由考慮代替vim的C/C++ IDE.
而這只是一個1.0版本,考慮到JetBrains的一貫水準,CLion的未來值得期待。
9. Microsoft .NET Framework向下兼容嗎
不向下兼容
.NET Framework又稱 .Net框架。是由微軟開發,一個致力於敏捷軟體開發(Agile software development)、快速應用開發(Rapid application development)、平台無關性和網路透明化的軟體開發平台。.NET是微軟為下一個十年對伺服器和桌面型軟體工程邁出的第一步。.NET包含許多有助於互聯網和內部網應用迅捷開發的技術。
.NET框架是微軟公司繼Windows DNA之後的新開發平台。.NET框架是以一種採用系統虛擬機運行的編程平台,以通用語言運行庫(Common Language Runtime)為基礎,支持多種語言(C#、VB、C++、Python等)的開發。
.NET也為應用程序介面(API)提供了新功能和開發工具。這些革新使得程序設計員可以同時進行Windows應用軟體和網路應用軟體以及組件和服務(web服務)的開發。.NET提供了一個新的反射性的且面向對象程序設計編程介面。.NET設計得足夠通用化從而使許多不同高級語言都得以被匯集。
.NET Framework有哪些版本有哪些版本有哪些版本有哪些版本????
.NET框架 1.0、.NET框架 1.1、.NET框架 2.0、.NET框架 3.0、.NET框架 3.5、.NET框架 4.0。
.net framework各個版本介紹
各個版本介紹各個版本介紹各個版本介紹::::
.NET框架框架框架框架 1.0
完整版本號 - 1.0.3705
這是最初的.NET構架,發行於2002年。它可以以一個獨立且可重新分發的包的形式或在一個軟體發展工具包集中被獲得。它也是第一個微軟Visual Studio .NET的發行版的一部分(也被稱作Visual Studio .NET 2002)。 .NET框架框架框架框架 1.1 完整版本號 - 1.1.4322 這是首個主要的.NET框架升級版本,發行於2003年。它可以以一個獨立的可重新分發的包的形式或在一個軟體發展工具包集中被獲得。它也是第二個微軟Visual Studio .NET版本的一部分(也被稱作Visual Studio .NET 2003)。它也是首個被Windows操作系統-Windows Server 2003所內置的.NET框架版本。 自1.0版本以來的改進: 自帶了對mobile asp .net控制項的支持。這在1.0版本是以附加功能方式實現的,現在已經集成到框架的內部。安全方面的變更 - 使得Windows窗體代碼以可靠的行為運行,從而可以在Internet環境內安全運行,並且加入了ASP .NET應用程序的代碼安全訪問功能。自帶了對ODBC和Oracle資料庫的支持。這在1.0版本是以附加功能方式實現的,現在已經集成到框架的內部。.NET Compact Framework- 這是一個用於智能設備(例如Pocket PC或者SmartPhone)的.NET框架的子集。對IPv6的支持。大量的API變更。
.NET框架框架框架框架 2.0
完整版本號 - 2.0.50727.42,發行於2005年10月27日。
.NET框架 2.0的組件都包含在 Visual Studio 2005和SQL Server 2005裡面。通過MSDN Universe版可以免費下載RTM版本。 自1.1版本以來的改進: 大量的API變更。新的API讓需要管理.NET運行庫實例的非.NET的應用程序可以做到這點。這個新的API對.NET運行庫的各種功能,包括:多線程、存儲器分配、代碼載入等,提供了很好的控制。它最初是為Microsoft SQL Server能夠有效率的使用.NET運行庫而設計的,因為Microsoft SQL Server擁有它自己的日程管理器和存儲器管理器。NET框架 2.0 SP1隨.NET框架 3.5同時發行,請參看.NET框架 3.5一節。.NET框架 2.0 SP2隨.NET框架 3.5 SP1同時發行,請參看.NET框架 3.5 SP1一節。
.NET框架框架框架框架 3.0
主條目:.NET框架 3.0 發布日期2006/11/21。曾用名「WinFX」。依然使用.NET框架 2.0版本的公共語言運行庫(CLR),並加入了適應未來軟體發展方向的4個框架: Windows Presentation Foundation(WPF):提供更佳的用戶體驗,用來開發Windows Forms程序以及流覽器應用程序.Windows Communication Foundation(WCF):提供SOA(面向服務的軟體構架)支持的安全的網路服務(Web Service)框架。Windows Workflow Foundation(WF):提供一個設計與發展工作流程導向(Workflow-oriented)應用程序基礎支持的應用程序介面。Windows CardSpace:提供一個SSO的解決方案,每個用戶都有各自的CardSpace。.NET框架 3.0 SP1隨.NET框架 3.5同時發行,請參看.NET框架 3.5。.NET框架 3.0 SP2隨.NET框架 3.5 SP1同時發行,請參看.NET框架 3.5 SP1。
.NET框架框架框架框架 3.5
這個版本將包含一個支持C#和VB .Net中心的語言特性的編譯器,以及對語言集成查詢(LINQ, Language-Integrated Query)的支持。該版本隨Visual Studio 2008一起發布。 同時,.NET框架 3.5自動包含.NET框架 2.0 SP1以及.NET框架 3.0 SP1,用於為這兩個版本提供安全性修復,以及少量新增的類庫(如System.DateTimeOffest),此版本提供的新功能有:
擴展方法(Extension Method)屬性(Attribute),用於為擴展方法提供支持LINQ支持,包括LINQ to Object、LINQ to ADO .NET以及LINQ to XML表達式目錄樹(Expression Tree),用於為Lambda表達式提供支持與語言集成查詢 (LINQ)和數據感知緊密集成。藉助這個新功能,您可以使用相同的語法,在任何支持LINQ的語言中編寫相關代碼,以篩選和枚舉多種類型的SQL數據、集合、XML和數據集,以及創建它們的投影。利用asp .netAJAX可以創建更有效、更具交互性、高度個性化的Web體驗,這些體驗在所有最流行的瀏覽器上都能實現。用於生成WCF服務的全新Web協議支持,包括AJAX、JSON、REST、POX、RSS、ATOM和若干新的WS-*標准。Visual Studio 2008中面向WF、WCF和WPF的完整工具支持,其中包括支持工作流的服務這一新技術。.NET框架 3.5基類庫 (BCL)中的新類可滿足許多常見的客戶請求。.NET框架 3.5 SP1 .NET框架 3.5 SP1自動包含.NET框架 2.0 SP2以及.NET框架 3.0 SP2。該版本隨Visual Studio 2008 SP1發布,此版本提供了下列的新功能:
新增的ASP .NET功能包括ASP .NET動態數據和ASP .NET AJAX附加功能,前者提供了無需編寫代碼就可實現數據驅動的快速開發的豐富支架框架,後者為管理瀏覽器歷史記錄提供了支持(後退按鈕支持)。ADO .NET Entity Framework。對SQL Server 2008的數據提供程序支持。.NET框架客戶端配置文檔是完整版.NET框架的子集,面向客戶端應用程序。這改善了尚未安裝.NET框架的計算機上的安裝體驗。改進Windows Presentation Foundation的性能,其中包括啟動速度的點陣圖效果性能的提高。為Windows Presentation Foundation增加的功能包括對業務線應用程序的更好支持、本機閃屏支持、DirectX像素著色器支持以及新的WebBrowser控制項。ClickOnce應用程序發布者可以根據具體情況決定是否取消簽名和散列,開發人員可以以編程方式安裝顯示自定義署名的ClickOnce應用程序,ClickOnce錯誤對話框支持指向網路上特定於應用程序的支持站點的鏈接。用於SQL Server的.NET框架數據提供程序 (System.Data.SqlClient)完全支持SQL Server 2008資料庫引擎的所有新功能。有關.NET框架對SQL Server 2008的支持的更多信息,請參見SQL Server中的新功能 (ADO .NET)。ADO .NET數據平台是一種多版本策略,它使開發人員能夠針對概念性實體數據模型進行編程,從而減輕他們的編碼和維護工作。此平台提供了ADO .NET Entity Framework、實體數據模型 (EDM)、對象服務、LINQ to Entities、Entity SQL、EntityClient、ADO .NET數據服務及實體數據模型工具。Windows Communication Foundation現在提供了改進的互操作性支持,增強了部分信任方案中的調試體驗,並擴展了集成協議支持以更廣泛地應用於Web 2.0應用程序,從而使DataContract串列化程序更易於使用。Microsoft.VisualBasic.PowerPacks命名空間引入了新的DataRepeater控制項,該控制項以可自定義的列表格式顯示數據。此命名空間還包含新的矢量形狀。
.NET框架框架框架框架 4.0
.NET框架 4.0主要增加了並行支持,英文版於2010年4月12日推出。
企業基礎 .NET提供開發軟體的獨立平台,自帶高度安全的網路系統,相當倚重軟體組件以及組件導向程序。在這方面它完全取代前者(COM)。
.NET框架版本已經升級到了框架版本已經升級到了框架版本已經升級到了框架版本已經升級到了3.5。。。。但是但是但是但是.net framework 3.0和和和和3.5其核心部分還是其核心部分還是其核心部分還是其核心部分還是.net2.0的東西的東西的東西的東西,,,,只不過在其基礎上增加了一些個類庫只不過在其基礎上增加了一些個類庫只不過在其基礎上增加了一些個類庫只不過在其基礎上增加了一些個類庫。。。。以下這個圖表可以很清楚的描述了以下這個圖表可以很清楚的描述了以下這個圖表可以很清楚的描述了以下這個圖表可以很清楚的描述了3個版個版個版個版本框架的不同之處本框架的不同之處本框架的不同之處本框架的不同之處。。。。
.net framework 2.0 = CLR 2.0 + FCL(framework class library)
.net framework 3.0 = .net framework 2.0 + SP1 + WPF + WCF + WF + CardSpace
.net framework 3.5 = .net framework 3.0 + SP2 + new compiler
這三個版本framework的CLR都是2.0,因此,你會發現asp.net的runtime還是只有1.1和2.0,像Linq這些新功能其實只是用新的編譯器加上一些新的類庫來實現的,3.5版本並沒有對CLR做大的升級。 VS2008支持在2.0,3.0和3.5三種版本下開發項目,VS2005的項目可以平穩的升到VS2008上,在VS2008下做VS2005的項目,用的編譯器和類庫同VS2005都是一樣的,但是提供了更好的開發環境