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都是一样的,但是提供了更好的开发环境