This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
第 3 章 程序开发环境的使用
我们知道,程序开发要经历源程序编辑、编译、链接、运行、调试等多个重复环节,
对于早期的程序员来说,每一个环节都是由独立的工具完成的,即程序的编辑器、编译器、
连接器、调试器都是独立的程序工具,在这样的环境下,程序员的工作效率比较低。随着
软件技术的进步,逐渐出现了集成开发环境(IDE)。所谓集成开发环境就是将源程序的编
辑、编译、链接、运行、调试等程序开发的基本环节集成在一个平台上,以提高程序质量
和程序开发效率。
由于 C 语言是 C++语言的子集,所以无论哪个开发环境,C 语言和 C++语言的开发工
具是统一的,一套集成开发环境既可以开发 C 语言程序,也可以开发 C++程序。
3.1 实验目的
(1)了解和使用 Visual C++ 6.0(简称 VC)集成开发环境。
(2)熟悉 VC 的控制台应用程序的开发、调试步骤和方法。
(3)掌握 C 程序的编辑、编译、链接和运行过程。
(4)了解项目、文件、工作区等基本概念。
(5)能理解常见错误的提示信息,并根据提示进行改错。
3.2 相关知识点
3.2.1 C 语言的组成特点
(1)C 语言的基本构成要素是函数,程序的入口点是主函数。程序从主函数的第一条
语句开始执行,主函数的 后一条语句执行完毕,程序执行结束。
(2)程序是处理数据的,所以一般的程序都会有输入输出语句。C 语言的输入输出是
以库函数的形式给出的。基本的输入输出函数是 scanf 和 printf。
(3)C 语言库函数的原型说明都是放在相关的头文件中的,函数 scanf 和 printf 放在
stdio.h 文件中。
程序设计实践教程(C 语言描述) 68
3.2.2 C 语言上机开发程序过程
现在我们暂时不考虑怎么样设计一个程序。假设我们已经在纸上或头脑里编写出了一
个 C 语言程序,那么如何上机实践将我们的想法或者在纸上编写的程序变成可执行的程序,
以验证我们所编写的程序是否正确呢?这是初学 C 语言时必须解决的问题。这个过程可以
用图 3-1 来说明。
图 3-1 C 语言上机实践过程
1.编辑、修改源程序
首先我们需要一个编辑器以编辑或者修改源程序。理论上讲,任何一个文本处理器都
可以作为源程序编辑器,最简单的编辑器就是 Windows 操作系统的记事本程序。当然现在
大多数 C 语言集成开发环境都自带编辑器。这一步的输出结果是源程序文件(例如 xx.c)。
C 语言的源程序文件一般以.c 作为扩展名。
2.将源程序编译成二进制文件
源程序编辑完成后,这一步使用编译器编译源程序。编译器完成以下两方面的任务。
(1)检查源程序语法。如果源程序中存在语法错误,那么编译器会给出语法错误的相
关提示信息。不同的编译器给出的语法错误信息的详细程度不同。但即使最简单的编译器,
也会给出语法错误所在的行号。更高级的编译器还会给出语法错误具体信息,例如变量未
定义、括号不匹配等。
(2)编译生成目标文件。如果源程序已经没有语法错误,那么用编译器将源程序编译
成二进制代码文件,实质上就是将 C 语言语句翻译成对应的二进制机器指令,将这些二进
制机器指令保存到一个文件中,这样的文件称为目标文件(例如 xx.obj)。
3.构建可执行程序
在第 2 步生成的目标文件尽管是机器指令,但是一般情况下还不能直接运行,必须使
用连接器将目标文件构建成可执行程序,这个过程也称为连接过程。连接器完成下面几个
任务:
第 3 章 程序开发环境的使用 69
(1)绝大多数的 C 语言程序都需要标准库函数支持,所有的标准库函数都已经被编译
成二进制代码,并且存放在一个库文件之中。所以必须将库文件与目标文件合并在一起(链
接)才能构成独立的可执行文件。 如果某些函数在本程序中没有实现,在库函数中也没有
实现,那么连接器也会报错。
(2)不同的操作系统,其可执行文件的格式不一样。必须将目标文件转换成操作系统
能认识的可执行文件格式。
需要说明的是,现代的集成开发环境一般都将编辑器、编译器和连接器集成在一起,
我们上机时能够明确“看见”的只有源程序编辑器(实际上是编辑窗口),而编译器和连接
器在后台工作,不需要我们手动调用,只需要按一两个按钮或者快捷键即可。详细情况见
本章后面的实验范例。
3.2.3 集成开发环境介绍
集成开发环境(Intergrated Development Environment,IDE)可以给程序员提供很大的
#include<stdio.h> void main() { int a,b,s; /* 定义变量 */ printf(" Enter two number a,b=?\n"); scanf("%d%d", &a,&b); /*调用标准函数,要求用户输入两个数据*/ s=a+b; printf("s=%d\n",s); }