发表时间:2022-03-24来源:网络
一、首先,说结论:
如果此前没有学过任何语言,0基础学习C语言,那么推荐使用Microsoft Visual Studio中文版(Visual C++中文版)。截至目前(2022年),建议选用Visual Studio 2022社区版(安装时选择其中的Visual C++/桌面开发)。若此前学过其它语言(尤其是Java),那么推荐使用Eclipse,在Eclipse的Market中安装CDT组件。如果希望找一个轻量级的安装包比较小的开发工具,并且【(英文过关(大致是4级水平)}或者(有一定的编程基础)】,那么选择Dev-C++或者Code::Blocks如果愿意折腾,可以考虑Visual Studio Code (VS Code),需要自己配置编译器、自动补全等功能。二、其次,解释一下对题主问题的理解(本节建议略过不读)
题主问题标题是【C语言初学者如何配置编程环境最适合学习(Windows 环境下)?】理解1:标题给人的第一感觉是【一个刚刚开始学编程的,以C作为入门语言的初学者咋搞一个合适的Windows编程环境】。理解2:看了题主对问题的详细描述,才知道题主以前学过一段时间C++,所以问题实际是【有少量编程基础的人初学C语言,如何配置一个合适的Windows编程环境】。三、再次,解释为什么给出【一】中的三个结论:
最大的考量,是“程序好写错难纠”。初学者在面对编译错误信息时的茫然,每一个人都经历过。
本节以下面的C语言代码为例(main.c),分别展示Visual Studio Community 2017(Visual C++)、Eclipse Neon Release (4.6.0) for Windows (with CDT) 、Dev C++ 5.11(with TDM-GCC 4.9.2) 的不同表现。以下展示中所用的三种IDE,均为安装后的默认状态,未做配置调整。
#include void foo() { return 1; } int main(int argc, char *argv[]) { int size = 3; // c99-style comment char buf[size]; // c99-style array const _Bool x = 0; // c99 data type _Bool foo() printf("The world is %d\n", x); return 0; }注:上述代码有故意制造的语法错误
结论1. 【如果此前没有学过任何语言,0基础学习C语言,那么推荐使用Visual Studio中文版】
因为Visual Studio中文版提供的绝大部分关于错误代码的信息,都是中文,包括
a. 编辑代码时VS指出的程序可能的错误(微软称其为Intellisense)
b. 编译C语言程序的时候,报告的程序语法错误以及警告信息
图1. Visual Studio 中 Intellisense提示的错误信息是中文如上图所示,由于调用foo()函数时,在foo()之后遗漏了一个分号,printf下面显示了波浪线,鼠标光标置于printf上面,Intellisense就会提示错误信息(或者提供改正建议)。
图2. Eclipse提示的错误信息是英文,但位置正确如上图所示,第11行foo()后面遗漏了分号,Eclipse(with CDT)提示的错误位置恰好在右半边括号处(括号下面有波浪线),鼠标置于括号上面时,提示的信息是“Missing ';'”。虽然是英文,但这个提示的位置比Visual Studio要好。过去十多年,我在明光村邮电职业技术学校教C/C++,每年都会遇到一两个学生,按照Visual Studio的提示,把分号放到printf的‘p’字母之前。这很强大,因为这样搞从语法上来说是正确的,能通过编译。但是当我们看到 ;printf("xx"); 这样的代码写法时内心是崩溃的。
++++++++++++++++++
假装这里有张Dev-C++截图
但是Dev-C++没有前面两个开发工具提供的信息提示,所以为了节省篇幅就不截图了
++++++++++++++++++
图3. Visual Studio中编译程序后输出的错误信息如上图所示,在Visual Studio中编译main.c,输出的错误信息基本都是中文的。
图4. Eclipse编译程序后输出的错误信息如上图所示,在Eclipse中编译main.c之后,输出的相关信息都是英文的。此外请注意第9行代码的警告信息与Visual Studio的含义是完全不同的。
图5. Dev-C++编译程序后输出的错误信息如上图所示,Dev-C++的输出信息是全英文的,就不和Visual Studio比了,可读性比Eclipse还要差一点点。
结论2:【若此前学过其它语言(尤其是Java),那么推荐使用Eclipse,在Eclipse的Market中安装CDT组件】
原因1,有了程序设计基础,了解了一点计算机英语(或更简化一点,程序英语),应付Eclipse中的英语应该不是大问题。Eclipse带来的跨操作系统的统一编程体验、面对问题时给解决方法而不是简单地给错误信息的这种提示方式(关于这一点,可能有争论)、开源社区的支持、非常多免费的扩展插件都是选择它的理由
原因2,Microsoft的Visual Studio一直不能(不打算)支持完整的C99和C11标准,而仅支持C++03和C++11标准中所兼容的C99或者C11的子集。前述示例程序的第8、9两行:
int size = 3; // c99-style comment char buf[size]; // c99-style array在Eclipse中是没有问题的,因为Eclipse CDT支持C89、C99和C11标准(本质原因是Eclipse CDT背后的GCC编译器支持),Dev-C++支持C89、C99标准(本质是其背后的GCC4.x/5.x支持)。但是,在Visual Studio中无法通过编译,提示“error C2057: 应输入常量表达式”。关于Visual Studio对C99和C11的支持问题可以参见这个Quora问题(需爬墙)以及这篇博文。
原因3,如果想要在计算机领域深入学习和应用,Java几乎是个避不开的东西,比如做Android开发、做Web应用的前端以及后台、做Hadoop大数据分析等。所以,管它什么C/C++/Python/Java/...... 直接用Eclipse统统搞定她们。
结论3:【如果希望找一个轻量级的安装包比较小的开发工具,并且【(英文过关(大致是4级水平)}或者(有一定的编程基础)】,那么选择Dev-C++】
原因: Dev-C++足够小。不过在结论1的对比中,我们也可以看到Dev-C++的编译信息是英文而且不太好看
Dev-C++的安装包大小:Dev-Cpp 5.11 TDM-GCC 4.9.2 Setup.exe 约48M字节,安装后约360M字节
Visual Studio Community 2017版,在线安装,不知道安装包大小;安装后约2.7G字节
Eclipse IDE for C/C++ Developers (Neon Release 4.6.0),安装包180M字节,安装后约1.1G字节。此外还需安装JDK/JRE。
考虑到Dev-C++确实足够小,所以在网易云课堂开设的课程也使用了它(但它对编程初学者的确没有VS那样友好)
四、最后,说说其它编程环境
Code::Blocks不熟悉,不过每年都有很Geek的学生在课下向我推荐,说很不错。那么我的理解是,Geek喜欢的东西,对于初学者来说,也许会有门槛?抱歉,没有调查就没有发言权,所以关于Code::Blocks的看法只是博你一笑Emacs。我常年使用Emacs,但是,完全不推荐初学者用Emacs。Emacs本来就很难配置并且入门门槛高,更别说在Windows上面配。折腾过很多次,想在Windows上配出过能看齐eclipse水平的C/C++环境非常难。Emacs最好用的也许是org-mode做日程管理以及写文章记会议纪要,而不是在windows上面写c程序
图6. 编辑器的学习曲线上图来源未知,如果侵犯了您的权利,请告知本文作者,本文作者会在尽可能快速将之删除;如果您知道图片来源以及版权归属,也请告知作者。
上一篇:为什么每个程序员都要学习C语言?
下一篇:学习python与c语言哪个好?
皓盘云建最新版下载v9.0 安卓版
53.38MB |商务办公
ris云客移动销售系统最新版下载v1.1.25 安卓手机版
42.71M |商务办公
粤语翻译帮app下载v1.1.1 安卓版
60.01MB |生活服务
人生笔记app官方版下载v1.19.4 安卓版
125.88MB |系统工具
萝卜笔记app下载v1.1.6 安卓版
46.29MB |生活服务
贯联商户端app下载v6.1.8 安卓版
12.54MB |商务办公
jotmo笔记app下载v2.30.0 安卓版
50.06MB |系统工具
鑫钜出行共享汽车app下载v1.5.2
44.7M |生活服务
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-02-15
2022-02-14