‘壹’ 为什么c语言有很多不同的版本
C的标准本来就有多个版本,目前编译器采用的标准比较常见的是ANSI C和C99。另外语言标准中也存在未定义行为,留给编译器实现自己去定义。各种编译器对标准的实现也未必完全遵守(C还好,C++这种特别复杂的语言就很难做到完全遵守标准了),而且往往还增加一些自己的扩展,预定义宏之类的。这些都给跨编译器编码带来麻烦。不过总体而言C是个比较单纯的语言,除非程序员故意,一般搞不出太多给编译器出难题的花样。
‘贰’ 关于c的编译器的问题!
因为你没有让他停留!你可以像一楼说的那样加个system("pause");
这个语句可以让他停留!
也可以像二楼那样,加个gets(s);因为他要等你输入字符串!这样就可以看到接过了!
组好还是像一楼说的那样!那个是专门的语句!
‘叁’ C语言的编译器为什么有许多不同的版本并且在不同的编译器版本下C语言的语法规则也不尽相同
C的标准本来就有多个版本,目前编译器采用的标准比较常见的是ANSI C和C99。另外语言标准中也存在未定义行为,留给编译器实现自己去定义。各种编译器对标准的实现也未必完全遵守(C还好,C++这种特别复杂的语言就很难做到完全遵守标准了),而且往往还增加一些自己的扩展,预定义宏之类的。这些都给跨编译器编码带来麻烦。不过总体而言C是个比较单纯的语言,除非程序员故意,一般搞不出太多给编译器出难题的花样。作为长期用C++的程序员,非常羡慕C代码编译时那种飞快的速度。
麻烦采纳,谢谢!
‘肆’ c语言编译器的选择
关于C语言编译器的选择(Tc2.0,Tc3.0,Vc6.0等)
我们在学习C语言时通常会面临C语言编译器的选择,事实上C语言编译器可以分为C和C++两大类,其中C++是C的超集,均向下支持C。主要的C语言编译器及特点分别如下:
(1)TC 2.0DOS平台软件。最经典的C语言编译器,系统体积小,简单易学,容易上手,而且很多前人或书籍的程序均基于该编译器,是学习C语言的首选。不过它不支持鼠标,但读者如果掌握几个快捷键,操作时对鼠标可能就不怎么需要了,如:F2 存盘 F3 打开程序 Alt+F3在最近打开的文件之间切换 Alt+F5观察运行结果F9 编译制作EXE Ctrl+F9编译并运行Ctrl+Y 删除当前行 Ctrl+KB定义块首 Ctrl+KK 定义块尾 Ctrl+KC复制块 Ctrl+KY删除块Ctrl+KV 移动块
(2)Tc3.0DOS平台软件。目前比较不错的C/C++语言编译器,支持鼠标,语法着色,多文档,错误跟踪也很好,操作与TC2.0有很多类似,TC2.0会用那么TC3.0也很快会用,缺点是以前很多代码是用TC2.0设计的,而由于TC3.0语法要求的严格性,如要求函数必须定义类型,所以向下存在一定的兼容性问题,所以对于初学者选择起来很矛盾,建议先学会使用TC2.0,而把TC3.0作为能力的补充和平时工具之用。目前有的教材已经选用该编译器,不过需要一个较长的调整期,因为很多源代码需要过渡过来才行,虽然性能上比TC2.0有所提高,但对于初学者没有质的变化,选择时需要注意。
(3)VC++ 6.0Windows平台。目前主流的C/C++语言编译器,包含强大的类和内嵌WinAPI的MFC,具有可视化的编程界面。对于TC等的作品也具有向下兼容的特点,建议读者选用作为C语言过渡到Windows平台编程的首选工具。当然,作为学习,该系统显得有点庞大,不过通过入门的学习,调试旧的Tc程序也可以。还有其他的编译器,例如Win tc、gcc、lcc、BC 3.1等等,事实上,编译器的选择不是最重要的,他们都可以完成基本的C语言编译,不过面向考试的时候,还是根据考试的要求,因为编译器的编译结果存在着一定的差别,特别在一些复杂语法的语句编译上。从目前的形势看,对于从未学习过计算机程序设计的读者来说,学习C语言时,建议开始选择Tc2.0,虽然不能使用鼠标,但几个快捷键的熟练运用基本上可以解决操作的问题,当然有时间的时候了解使用TC3.0就更好了;对于学习过TC2.0的读者来说,平时完全可以在TC3.0或VC 6.0下调试程序,但考试的时候如果要求必须在TC2.0下,那最好上机练习时在TC2.0下。当然,使用如记事本等文本编辑器编辑程序,然后用TC来调试也不失为一种好方法。另外,DOS平台的Tc2.0或Tc3.0都存在某些机器运行时键盘响应迟缓或停顿的问题,Tc3.0可能这种现象要多一点,这主要是由DOS基本内存的不足造成的。可以安装水平考试课题组提供的DOS模拟器来解决问题,该模拟器重新划分更多的内存,效果不错。
新的类似软件平台也需要读者关注,那就是java和Viusal C#,因为从发展的眼光来看,目前软件设计平台有一定的趋同趋势。例如:java和C#,都来自于C和C++,都作了不错的扩展和优化。对于深入学习C语言的同学,未来几年请务必学习VisualStudio.Net或者Java,因为这二者代表了现在的软件设计主流。他们的主要特点是:优秀的IDE设计环境,强大的WEB服务设计功能,对C++的优化和扩充,基于虚拟机的运行模式,优秀的面向系统开发,可视化的较为成熟的面向对象的程序设计机制等等.
‘伍’ 如何看待各种C++编译器扩展
扩展最大的问题是非标准,不好移植。原则上避免使用,有标准的东西最好就用标准的(比如C++11引入了原子操作类,就不要用G++的原子操作扩展了)。
但是如果你知道比如自己的产品只会在gcc下编译,那也没有什么问题。有些gcc和vc的扩展功能相同但是写法不同,需要包装一下实现一定程度的可移植性。
‘陆’ C,编译器问题
你的编译器默认为C程序编译处理,但你的源文件被保存成了C++类型了,把文件名扩展名该成.c吧
‘柒’ C语言的编译器为什么有许多不同的版本并且在不同的编译器版本下C语言的语法规则也不尽相同
新的版本都是基于旧的版本升级过来的,以此来改善编译器的性能、增加对新平台的支持以及提高竞争能力。
不同的编译器支持的标准语法是一致的(不然没资格称C编译器),但是每个编译器自身可以添加额外的语法、库来扩展语言的表达能力,这就是所谓的xx编译器扩展。使用语言扩展通常能获得较高的性能和灵活性,但是损失了跨平台性。
不仅仅是编译器有很多版本,语言本身都有很多版本,目前C语言的版本是C11,下一个版本为C1y。
‘捌’ C/c++编译器如何看待h和cpp文件
本质上是没有什么区别的,.h文件实现的功能是声明本文件或.cpp文件中需要被别人使用或知道的变量、类型、函数及宏定义等。.h文件就像是一个接口,具体的实现可以在.cpp中也可以在.h中。.cpp中的函数或变量即便是全局的,在没有其他.cpp文件使用...
‘玖’ C语言和扩展C语言是什么关系
严格的来说,没有扩展C语言。C语言就是指符合C89,C99,C11标准的语言。在此基础上引入更多的功能可以称为拓展函数库。
此外,还有很多类似于C的语言,例如object-C,它并属于扩展C语言,是一种以C语言为基础设计的新语言。object-c通常写作objective-c或者obj-c或OC,是根据C语言所衍生出来的语言,继承了C语言的特性,是扩充C的面向对象编程语言。它主要使用于Mac OS X和GNUstep这两个使用OpenStep标准的系统,而在NeXTSTEP和OpenStep中它更是基本语言。Objective-C可以在gcc运作的系统写和编译,因为gcc含Objective-C的编译器。在MAC OS X系统下,运用苹果提供的SDK等开发工具包,可以用来做IOS开发,开发后的程序在Iphone虚拟机中进行测试,运用的主要语言为Object-c。