咱们今儿说说IDE的事儿。

IDE是「集成开发环境」的意思,比如咱们常用的VC6.0,就是开发C语言所用的IDE的一种。对于IDE的认识,可能有些朋友有点儿模糊,咱们捋一捋,我也会给出一些IDE方面的建议。下面内容都是靠印象撸的,懒得一一考证了,如有错误还请指出。
VC的全称是Visual
C++,是「微软」公司的一款产品,对于咱们来说,最常用的功能就是写C语言用。在VC6.0中写好程序后,咱们需要先点「编译」,再点「链接」,这是什
么意思呢?大家可能多多少少听说过,C语言用记事本也能写,确实如此。方法大致如下,首先在记事本中写好C语言编写的程序,然后你需要有一个
gcc.exe的程序,然后利用一些参数,比如gcc xxx.c -o
xxx.exe,这样就会生成一个xxx.exe文件,这个就是最终生成的可执行文件,也就是编好的程序。没了?没了。编译的过程是将.c变为.obj、
链接的话是把.obj变为.exe,GCC、包括咱们用的VS,一般都把这两个过程二合一了(当然也可通过参数拆开来做)。
如果说gcc(GNU C Compiler)是一把锤子,Visual C++ 6.0就相当于是一个超级强大的工具箱。当然,VC中也是有编译器的,只是用的不是gcc,而是微软自己写的编译器。
所以说,IDE只是个工具的集合,最基本工具的工作原理是一致的,有这么个概念比较好。
可能有人要问了,咱们学的不是C语言吗?为啥用Visual C++呢?有C语言专用的IDE吗?
回答上面三个问题。①C++这门语言在设计时,就考虑到兼容C语言的语法和标准库(从名字也能看的出来),所以C语言可看做
是C++的一个子集,也就是说在C++的IDE中编写C语言是完全可行的。(ps,C++的那种编译锤子叫g++)。②因为VC好使啊,微软大法好。③
有,比如 Turbo
C,「Borland」公司的产品,这款软件是一种以屎蓝色为背景色的、以屎黄色为字体颜色的、不用使用鼠标的一款上古化石。不造大家还记得不记得咱们C
语课本上为啥有个函数死活VC不认(大概是randomize()),因为这是一个TC(Turbo

C简称)中的函数,到了VC年代已经被无情抛弃了,从这里也能看出为啥我不推荐大家看太多课本。其实咱们这次课设要用到的EasyX库,就是用TC时代的
graphic.h库重新打包过来的,以方便在VC上运行。

再说说Dev-c,Code
Blocks等IDE,这些IDE都是很不错的(一般是使用标准的gcc编译器,自带),启动速度快。但是对于咱们这次的课设,我还是推荐大家使用
VS(或者VC)。比如Dev-cpp已经已经停止更新了,而且我就没成功调试过一次。Code
Blocks的调试功能相比VC也是差的比较远。而且有个比较大的问题,就是EasyX这个库貌似在VC/VS上与运行效果比较好。
还有就是非常重要的调试问题,以前咱们的课后习题,我在做的过程中最多就用过F10单步调试,当然还有很多大神用瞪眼调试法。做这个课设,至少用到了断点、条件断点、变量监视、单步调试的功能,这些都是DC或者CB所很难负担的。关于调试回头再专门来写。
接着说VS,VS的全
程是Visual
Studio,是微软的一种工具箱大杂烩,意思是VS不仅可以编写C++,还能有VB,C#等等软件,以微软自己的产品为主。所以Java基本是不用想
了。其实,咱们在VS中编C语言,其实还是用VS中的VC,版本的话大概是VC2010、VS2012这些。我课设用的是VS2012,比较稳定。因为装
了个VA插件,所以代码看上去都是挺漂亮的。关于这些和字体、排版等问题回头也再单说吧。VC的话可能在代码高亮上就比较挫。
忘拉单子了,好像IDE这个话题内还想写几个东西但是忘了,想起来再补充吧。

C语课设心得分享(二)的更多相关文章

  1. C语课设心得分享(三)

    调试. 以前咱们写课后习题,一般也不需要使用调试,如果程序编译error,根据错误信息就可以改好:如果是结果错误,那么在稿纸上过几遍基本也可以得出结果. 但咱们这个课设比较大,就需要很多调试的过程,尤 ...

  2. C语言课设心得分享(一)

    今儿上完课设,老师果然讲的比较少,周四还不用去,看来还是学生自己折腾.我在做课设的过程中,攒了一些心得/体会,希望能和大家分享分享,也希望能一起探讨探讨.如果是我能回答的问题,我很乐意能够提供帮助. ...

  3. 将C语课设传到了Github和Code上 2015-91-18

    一直听说Git好使,以前捣鼓过没弄成,现在考完试了终于可以静下心来研究研究. 哎,我要是当时做课设的时候就用Git,也能省下不少事呢. 使用的Git教程,刚看个开头: 廖雪峰的Git教程 http:/ ...

  4. 计算机网络课设之基于UDP协议的简易聊天机器人

    前言:2017年6月份计算机网络的课设任务,在同学的帮助和自学下基本搞懂了,基于UDP协议的基本聊天的实现方法.实现起来很简单,原理也很简单,主要是由于老师必须要求使用C语言来写,所以特别麻烦,而且C ...

  5. C语言课设——电影院选票系统

    C语言课设--电影院选票系统 1.课题介绍 大家都爱看电影,现请参考一个熟悉电影票预订系统,实现C语言版的订票系统.了解订票如何实现的.系统主要有2类用户:管理员用户和顾客用户. 管理员用户 1.电影 ...

  6. eclipse使用技巧心得分享

    eclipse使用技巧心得分享   习惯了eclipse开发java程序,公司最近的项目都是idea开发的,同时android studio也是idea原型开发的,在学android开发,所以脱离ec ...

  7. 2018-2019学年第一学期Java课设--魔塔

    目录 Magic-Towers 一.团队名称.团队成员介绍.任务分配 团队名称:MoTa 团队成员介绍 任务分配 二.项目简介 三.项目采用技术 四.项目亮点 主界面显示主要信息功能 游戏动画 五.项 ...

  8. 智课雅思词汇---二十七、形容词后缀-ant/-ent

    智课雅思词汇---二十七.形容词后缀-ant/-ent 一.总结 一句话总结: ...的 后缀:-ant ①[形容词后缀] 大部分与-ance或-ancy,相对应,表示属于...的.具有...性质的 ...

  9. 智课雅思词汇---二十四、形容词后缀-al-ial-ar-ary-ic-id-ish-ile-ine-oid-ory

    智课雅思词汇---二十四.形容词后缀-al-ial-ar-ary-ic-id-ish-ile-ine-oid-ory 一.总结 一句话总结: 1.形容词后缀-al? autumnal 英 [ɔː'tʌ ...

随机推荐

  1. 应用aspose.word破解版实现word转pdf

    import org.apache.log4j.LogManager; import org.apache.log4j.Logger; import java.io.File; import java ...

  2. OpenGL概述

    简介 状态机 glBegin()与glEnd() glFlush()与glFinish() OpenGL简介 OpenGL是图形硬件的一种软件接口.它被设计为硬件独立的接口,可用于多种不同硬件平台.O ...

  3. 我终于搞清楚为什么谷歌地图获取到的联通3G基站与大家手头的基站表不同了

    我终于搞清楚这个问题了,大家使用谷歌地图手机版.MobileTrack以及网优用的FieldTest获取到的WCDMA基站Cellid为什么不是大家手头的CellTrack91或基站表里的数字了... ...

  4. npm以及gulp相关操作

    在工作流相关的第一篇博客中,我们安装了nodejs的环境,那么nodejs自带的npm是一个功能十分强大的管理器,它已经不仅仅是局限于nodejs的版本管理器了,那么当现在我们可以通过npm来下载我们 ...

  5. bzoj1513: [POI2006]Tet-Tetris 3D

    Description Task: Tetris 3D "Tetris" 游戏的作者决定做一个新的游戏, 一个三维的版本, 在里面很多立方体落在平面板,一个立方体开始落下直到碰上一 ...

  6. OGNL表达式(待解答)

    OGNL表达式的路径到底怎样的?下面代码看不懂为什么要这样?

  7. Linux scp复制文件,不需要输入密码的技巧

    当两台LINUX主机之间要互传文件时可使用SCP命令来实现,建立信任关系之后可不输入密码. 把你的本地主机用户的ssh公匙文件复制到远程主机用户的~/.ssh/authorized_keys文件中 假 ...

  8. 便捷的php操作mysql库MysqliDb

    github 地址:https://github.com/joshcam/PHP-MySQLi-Database-Class MysqliDb -- Simple MySQLi wrapper and ...

  9. Spring Boot 性能优化

    spring 框架给企业软件开发者提供了常见问题的通用解决方案,包括那些在未来开发中没有意识到的问题.但是,它构建的 J2EE 项目变得越来越臃肿,逐渐被 Spring Boot 所替代.Spring ...

  10. 60. Insert Interval && Merge Intervals

    Insert Interval Given a set of non-overlapping intervals, insert a new interval into the intervals ( ...