谁能给我发个c语言在线编译器的编译器,是不是有TC编译器和VC编译器两种

为什么很多人建议学C语言不用任何IDE,直接用编辑器和编译器?
我来回答一下(一)从一线普通开发人员的角度来看,IDE是必备利器
作为一个应用项目开发人员,99%的时间是在用IDE。在一个单位开发项目,老板需要的是满足客户需求,保持按时把货交出来。因此如果不是自己瞎玩,而是今后想在就业时候更有竞争优势 ,学会熟练使用IDE是相当有必要的。
许多外资企业为了源代码管理方便有序,都上了TFS,CVS之类的源代码管理软件,团队协作开发。整天签入签出的。典型的就是VS开发,可视化的调试,包括断点设定,变量监视,快速的类和方法查找,图形化连接数据库,在IDE里直接看存储过程。数据库管理也是,MYSQL下都有图形化的辅助工具。作为工业界一线的程序员,为了就业,适应岗位要求,玩IDE是必须的。顺便说一下,许多外资企业倒是喜欢免费的JAVA解决方法,ECLIPSE横行啊。。。
网上有一些强大无比的UNIX牛人,号称痛恨一切IDE,这些牛人不在我讨论之列,我膜拜。(二)从学习者的角度来看
讲完生产讲学习。有人说不用IDE玩编译调试更能学习C语言底层的东西。拿C语言来说,有多大差别呢? 使用命令行编译,拿个手册组织一下各个参数,手工编译。没几次编译连接得熟练了,开始写MAKE FILE了。MAKE已经是几乎是全自动的了,然后桌面上来个快捷方式,一点就自动编译了,这个和IDE里一键编译连接有什么区别呢?和底层有毛关系呢?
命令行搞调试更是被IDE的断点,执行到,监视等可视化功能秒杀
命令行编译有助于解决理解STATIC,咳,咳咳
什么叫玩底层?
真要了解C语言,读几本好书,学校开的计算机组成原理好好学,操作系统原理好好学习一下内存管理,编译原理写个小编译系统玩玩文法parse神马的,第一遍编译,第二遍编译,连接,再来门汇编语言,学习一下C语言经过编译形成的汇编,register变量有没有真的放到AX,BX,CX神马的东东里面去,堆是汇编里怎么实现,栈怎么实现,调用函数时内存的变化。
命令行编译连接了解C的真谛。。。我哭。(三) 对初学者
举个JAVA的例子吧,初学者配一下环境变量,了解一下JAVAC,JAVA各种参数的用法是有好处的。我给初级程序员们培训,就是这么干的,前2次要求手工配置各种环境变量,基本概念搞定。
第3次开始,没错,手工配置仅是为了了解,然后ECLIPSE全面开始使用。
不用任何IDE只是最最开始的一小段时间,出去做职业码农不用IDE,不是超级高手就是误导新手。
我想老实的跟你说,这样做根本没意义。爱手工用手工,爱makefile用makefile,爱ide用ide。编译链接机制如此简单,听一遍就行了,训练自己用命令那么熟练有什么用?需要时花几秒google一下就行了。不过,如果你发布代码,最好提供makefile,这玩意儿通用,虽然这玩意儿太破旧又不肯进化。
首先IDE的含义就是集成开发环境,这种层面上来说,你就是用编辑器和编译器来做,也是IDE。只是简单或者复杂一点而已。 IDE给开发人员提供了集成和方便, 特别是初学者的助手,包装了太多专业和繁复的细节,对C语言来说,一但你专业积累够了,就会发现只是一种方便开发的工具,对你所关注的问题而言,这种工具并不会太重要。我的IDE使用路径提供参考: Turbo C,
Borland C++,
Eclipse, Emacs + Toolchains
最简单的原因是基本没有初学者会那么做菜鸟们总要给所谓的高手一个提供貌似牛 逼的建议的机会的!==================================================言归正传,其实没多大区别一个自顶向下学习,一个自下向上学习,至于哪个适合你就看你自己了另外,可能大多数人觉得C面向底层,怕初学者被庞大的IDE所迷惑不知其所以然但是换个角度想想,人家可能只是学一门工具而已,有必要把这个工具的祖宗八辈都捋清楚么?
要练的是写代码的那种感觉,而不是写代码的速度,IDE的功能是为了更快的开发,所以提供了自动提示,自动完成功能等等。在学习阶段我们不需要,我们需要的是更好的学习和掌握这门语言。不能变成一个离开IDE就写不出代码的家伙。
我就是这样的对于C语言而言,IDE的各种高级功能,基本上没有什么必要在Windows平台下,用MinGW + EditPlus我觉得比任何高级的IDE都好
因为当年他们学的时候用的就是IDE。等他们学深入了的时候,发现可以直接用编辑器来写代码的,而且写起来还很爽,所以会建议新手不要像他们当年那样,而直接使用编辑器。而事实上,尽管有人建议,新手还是使用IDE来入门,然后新手变高手,最后又建议其他的新手使用编辑器。。。
因为有一个人说了,最好不用,后来教学者基本都是从不自己用脑子思考的,别人这么说肯定没错啊,我教学生,那我也这么说。
你可以专心的学语言,而不用再IDE上花费更多的时间.另外可以避免一些IDE带来的错误,是的,有些时候报错是因为IDE,而不是你的代码.
不理解IDE的原理的话,就会变得只会做书上的示例程序而已而且学习C语言有一个重要过程就是理解Linker是怎么工作的,否则的话很多错误排除不了。(而且也不会明白代码中的extern、static这些核心关键字有什么意义)
已有帐号?
无法登录?
社交帐号登录共有 1665 人关注过本帖
标题:两种不同编译器调试的结果为什么有区别
等 级:新手上路
帖 子:14
结帖率:100%
&&已结贴√
&&问题点数:20&&回复次数:8&&&
两种不同编译器调试的结果为什么有区别
同一段C代码,用于打印浮点数类型,但两个不同的编译器调试时对long double类型运行的结果不一样,求解答?
用VC6.0++调试的结果如下
用editplus运行的结果如下
附件: 只有本站会员才能下载或查看附件,请
搜索更多相关主题的帖子:
等 级:论坛游侠
帖 子:39
专家分:142
额、本来就不一样的呀。。是不是大小不一样呢、、- -忘了。。貌似一个是32位、 一个是64位、
等 级:新手上路
帖 子:14
以下是引用糖傻猫在 12:21:42的发言:
额、本来就不一样的呀。。是不是大小不一样呢、、- -忘了。。貌似一个是32位、 一个是64位、能详细说明一下吗,原因出在哪里.
等 级:新手上路
帖 子:14
咋没明白点的大虾出来点拔一下吗?
是不是由于VC6++比GCC要高级?VC6++编译出来是对,GCC就不对,而是出现了。
等 级:职业侠客
帖 子:87
专家分:303
在输出的参数表中使用强制类型转换成printf中输出的格式应该就行了。
不同的类型在地址中的存储实现不一样
假设float存储为&&&&&& 0&&&&&&&&0&&&&&&&&&&&&&&&&&&&&&0000000&&&&&&0000……&&
&&&&&&&&&&&&&&&&&&表示正负&&& 表示指数正负&&&&&&&&& 表示指数值&&&&&&&&存储数
&&&double存储为&&& 0&&&&&&&&&&&&&&0&&&&&&&&&&&&&&&&&&0000000<font color=#dd&&&&&<font color=#0
&&&&&&&&&&&&&&&&&表示正负&&& 表示指数正负&&&&&&&&& 表示指数值&&&&&&&&存储数
此时double以float格式输出时表示指数值的后3位就划分到存储数中了,指数值变了,存储数也可能变了
[ 本帖最后由 ileelsai 于
19:56 编辑 ]
等 级:千里冰封
帖 子:1554
专家分:10000
vc6只是vc的一个版本吧,你把gcc全盘否定了?
控制系统中的C是怎么样的?欢迎来群一起交流进步
等 级:新手上路
帖 子:14
以下是引用ileelsai在 19:18:47的发言:
在输出的参数表中使用强制类型转换成printf中输出的格式应该就行了。
不同的类型在地址中的存储实现不一样
假设float存储为&&&&&& 0&&&&&&&&0&&&&&&&&&&&&&&&&&&&&&0000000&&&&&&0000……&&
&&&&&&&&&&&&&&&&&&表示正负&&& 表示指数正负&&&&&&&&& 表示指数值&&&&&&&&存储数
&&&double存储为&&& 0&&&&&&&&&&&&&&0&&&&&&&&&&&&&&&&&&&&&&&0000
&&&&&&&&&&&&&&&&&表示正负&&& 表示指数正负&&&&&&&&& 表示指数值&&&&&&&&存储数
此时double以float格式输出时表示指数值的后3位就划分到存储数中了,指数值变了,存储数也可能变了谢谢楼上的,可能是我没阐述清楚,其实我要问的是两种编译器对long double类形编译的结果为什么有区别。VC6编译的是所需要的结果,而GCC编译的不是。
等 级:新手上路
帖 子:14
以下是引用pauljames在 21:10:34的发言:
vc6只是vc的一个版本吧,你把gcc全盘否定了?汗。我没那意思呀,我是在问这两个编译器对long double类型的编译为什么有区别,VC6++编出来是所要的结果,而GCC编译结果不是。
等 级:贵宾
威 望:103
帖 子:3278
专家分:12654
在gcc下用printf(&%Lf&)来输出long double型变量,注意,L必须是大写的。
重剑无锋,大巧不工
版权所有,并保留所有权利。
Powered by , Processed in 0.035354 second(s), 8 queries.
Copyright&, BCCN.NET, All Rights Reserved跨平台C++开源代码的两种常用编译方式
】 浏览:105次
跨平台开源代码为适应各种编译器的编译,采用了两种方式方面来适配。一种是makefile方式。以著名的空间数据格式解析库gdal为例,它就是提供了makefile来供各种编译器来编译。gdal主要提供了微软的VC编译器和GNU GCC编译器两种格式的makefile,在gdal的根目录可以找到makefile.和GNUmakefile两个makefile文件,其中makefile.vc为vc编译器的makefile,GNUmakefile为GNU GCC编译器的makefile。
另一种方式是使用CMake软件。CMake软件可以看作是根据源码来构建各个IDE厂商的工程格式。CMake是一个开源软件,CMake支持的部分IDE(编译器)如下图:
从上图可以看出CMake可以支持很多IDE。CMake软件的输出目录习惯是开源代码根目录下的cmake文件夹。
跨平台开源代码一般至少支持makefile或CMake方式进行编译,有些两种都支持。如何判断一个开源代码支持哪些方式?一个粗浅的办法是查看源码根目录下是否有以makefile命名的文件,如果有,很可能是支持makefile编译的,如果源码根目录下有CMakeLists.txt,应该是支持CMake方式进行编译。
【】【】【】
【】【】【】请问有哪几种C语言编译器?_百度知道C语言学习的一个关于版本和编译器选择的问题_百度知道

我要回帖

更多关于 c语言在线编译器 的文章

 

随机推荐