- 零基础学C语言(第4版)
- 康莉 李宽
- 1473字
- 2023-05-17 17:09:58
1.5 C、C++、VC++的区别和开发环境
C、C++、VC++,这几个语言名中都带有C,可以说和C都有联系。
1.C
C就是指C语言。C语言的关键字少,而且拥有丰富的运算符和数据类型,可以解决大部分的“计算型”的问题或者“描述型”的问题。各大操作系统都提供了各种对C语言的集成化的调试编译环境,使用C语言编写的程序可以轻松地运行在各种平台上而不用做出任何修改,这也是C语言流行的原因。
2.C++
C++是另外一门与C语言语法类似的面向对象的高级语言。虽然C语言不加修改就可以被C++编译器编译,但C和C++是完全不同思想的两种语言,不应将C++看成C的超集。
3.VC++
VC++,一般是指微软公司的Visual Studio开发套件中的Visual C++开发环境。Visual Studio套件中包含了Visual C++、Visual Basic、Visual FoxPro等语言的开发环境。所谓开发环境,是集成了源代码编辑、编译、连接、调试等功能的一个综合程序。
Visual C++就是一个很好的C或者C++开发环境。一般被简称为VC或者VC++。该开发环境提供了优秀的代码编辑功能,同时提供了编译连接程序,在该开发环境中,输入完源代码,可立即编译运行,并且可以参照代码进行调试。
现在Visual Studio已经发展到了Visual Studio 2019版本,相对于早期的Visual Studio 6.0有比较大的改变。笔者平时工作时,一般使用Visual Studio中的Visual C++开发工具,如图1-4所示就是该环境的一个快照。
图1-4 Visual C++编程环境
从图中可以看到当前处于暂停(break)状态,程序运行到“printf("\nPlease input a number(0-100):");”这条语句,当前的变量i_score的值是0。函数的调用过程是:
9.1.exe!main() Line 12 C++ 9.1.exe!mainCRTStartup() Line 259 + C
对上面提到的一些词语不理解没有关系,这里只是描述这个快照的情况,使读者对集成的编程环境有个感性认识。等读者有了一定的编程经验后,再回头来看就可以明白。
如图1-1所示也是Visual Studio的一个快照,显示的是汇编语言窗口。从图1-1可以清楚地看到C语言被翻译成的汇编语言以及其对应的机器语言。从图1-1和图1-4中可以看出,Visual Studio是一个比较方便的开发环境。从菜单上可以看到Build、Debug菜单项,顾名思义,Build就是编译相关的菜单项,从中可以找到编译需要的一些命令;Debug是调试的菜单项,从中可以看到调试的相关命令。
说明 可以在VC的这个开发环境中进行编译、连接和运行。
对于编译有专门的编译程序,同样,连接也有专门的程序,在Visual Studio的安装目录下面可以找到这些程序,而通过开发环境编译连接的时候,由开发环境在后台悄悄地去调用这些程序。从图1-5中可以发现这些程序的藏身之处。其中,cl.exe就是微软的编译器,link.exe就是微软的连接器,它们都可以单独执行。cl.exe执行后的情况如图1-6所示。
图1-5 VC.net的编译连接程序藏身之处
图1-6 cl.exe执行后的情况
C语言于1987年被标准化,称为ANSI C。由于不同软件厂商都可以开发出自己的C语言编译器,在推出的编译器里,多多少少会增加自己的特性,这些特性被称作语言扩展。但是这些编译器都支持ANSI C。如果使用了其中的语言扩展,则在其他编译器上就不能被正确编译。为了不同编译器都能编译同一份源代码,所以应尽量不使用各厂商的语言扩展功能。
所以说,VC++并不是一门语言,而是开发环境。一般来说,现在进行软件开发,都是在集成的开发环境中进行的。当然,如果愿意,也可以单独编辑源代码,然后用命令行的方法编译并连接程序。
4.其他编译器及环境
Linux下面开发软件主要使用GCC(GNU Compiler Collection,GNU编译器集合),因为它免费。
Windows下面除VC++外,也还有不少其他的C语言开发环境,QT是一个由QT公司开发的跨平台C/C++图形用户界面应用程序开发框架,Eclipse IDE for C/C++ Developers是一个基于Eclipse的C/C++开发环境,以上几个开发环境适用于开发大型商业软件,安装包很大,除此以外还有很多适合初学者的C语言开发环境,Dev-C++是一个值得推荐的开发环境,因为它开源。Code::Blocks同样也是开源的。LCC-Win32是免费的C语言小型编译器,TCC是轻型C语言编译器。
注意 本书使用Code::Blocks作为开发环境。