VS2005上编写、运行、调试C语言程序
目录
前言:关于C/C++编译器的简单介绍    - 2 -
1.编辑、编译与运行    - 3 -
2.调试技术    - 9 -
设置断点    - 9 -
调试运行    - 9 -
快速监视    - 10 -
3.小结    - 13 -
4.附:连接lib静态库文件示例    - 13 -
   
20073
前言:关于C/C++编译器的简单介绍
  Turbo C 2.0发布于1989年,对历史并不太长而发展却神速的IT业来说,确实是古董级的软件了。但它几乎是最后一个专门为C语言设计的开发环境,具备学习C语言的一切条件,没有任何非C语言的东西干扰初学者,所以一直被各大高校的C语言课堂采用。
C++的发展使C++的开发环境大行其道。因为C++几乎完全兼容C语言,两者无论编译器还是编辑器、调试器都可以用同一套程序实现,而且C++共享C的库函数,很多软件还是用两者混合编程实现,所以基本所有的C++环境都同时支持C语言。
上学期使用的Dev-c++Windows平台下C++ IDE开发环境,属于共享软件。界面亲切优雅,size也不大,其后续版有中文语言支持,无需。该编译器适合于规模较小的软件项目。
美国微软公司出品的Visual C++(以下简称VC)是Windows平台上最流行的C/C++集成开发环境。从1993年发行1.0版本开始,历经多年锤炼,于2003年推出最新的7.0版本(Visual C++ .NET 2003)。VC系列产品具有稳定而强大的IDE开发环境,以及丰富的调试功能,微软于2005年底发布Visual Studio 2005               
本文将介绍在VS2005下如何开发C语言程序。
1.编辑、编译与运行
下面以创建一个判断是否是闰年的程序来演示如何使用VS2005开发C程序。
1. 启动VS2005,新建一个项目,新建方法有以下几种:
A:在VS2005默认的“起始页”有创建项目一项,单击“项目(P)”即可,如图1所示
B:文件 > 新建-> 项目,或者使用快捷键“CtrlshiftN
2.  由步骤1可以得到以下窗口,在项目类型中选择Visual C++,在右侧模板中中文写代码软件单击Win32控制台应用程序”,然后在“输入名称”提示处写项目名称,如图3-1 所示:如:LeapYear,名称下方的“位置”可以点击“浏览”按钮来更改。然后点击“确定”或者“回车键”即可。
    然后出现“欢迎使用Win32应用程序向导”对话框,单击“下一步”。如图3-2示:
单击“下一步”出现以下对话框,选择“空项目”,单击“完成”。如图3-3所示:
3. 在窗口的左侧默认出现“解决方案资源管理器,解决方案LeapYear”一栏,下面列出LeapYear,并包括头文件和源文件及资源文件三个文件夹。如图4所示
4. 新建一个C文件:如图5 所示:在“源文件”上点击右键,在出现的“添加”栏目上单击“新建项”,<这里也可以添加现有项,即已经用别的编辑器写好的C代码源程序可以通过此选项添加到LeapYear解决方案来>,这里采用“新建项”。
4.单击“新建项”,出现如下的对话框,在左边“类别”一栏选择“代码”,右侧的“模板”中选择“C++文件”,在下边名称一栏输入:“LeapYear.c”,这里要注意:文件的后缀应该是“.C”    ,不能是默认的cpp文件。点击添加即可。
补充一点:如果不小心没有写“.C”后缀,可以这样处理:在建好的cpp文件右键单击,重命名为“.C”文件,也可以选择“从项目中排除(J)”这一项把该文件去掉,然后新建一个。如图7所示。
5. 在出现的LeapYear.C空白处编写C代码即可。如下图所示:
6.写好代码后    单击“编译”,左边那个是只编译当前文件,右边那个编译全部文件(快捷键F7) 也可以在 菜单栏“生成”->“生成解决方案”或者别的可选择项目。
7.    在编译完成之后,我们就可以按“运行(ctrl+F5)”或者“调试运行(F5)”来运行我们的程序了。程序会提示:“此项目已过期,要生成它吗?”的对话框,单击“是”。
在以后的使用中,我们可以直接按“运行”或“调试运行”而不需要单独进行编译,因为当你按“运行”或“调试运行”的时候它会自动的检测程序是否需要重新编译,如果需要,则会弹出一个对话框询问你是否同意重新编译,你只需在此时点击“Yes”,它就会自动重新编译、连接程序后再运行,非常方便。
另外要注意:信息输出窗:系统用来输出一些信息。比如上面在执行编译时,系统就会输出
编译的结果,一般是编译器在程序中发现的错误或者一些警告。如果编译器没有发现错误(error)及警告(warning),那么你会在最后一行看见“0 error(s), 0 warning(s)”的字样。注意:在写程序时应当认真而小心的对待每一个warning,最好把它们都当作error对待。
2.调试技术
VS2005进行程序的调试是非常方便的,我们可以在任一行设置一个断点,当程序执行到断点所在的行时就会暂时停住,此时,你可以单步执行程序(即一次只执行一条语句),并查看此时各种变量的值,下面我们就来看看如何使用VS2005的调试功能。
设置断点
以刚才程序为例,设置一个断点,如下图所示:方法有下面图示几种,可以参考,建议使用快捷键“F9”启动调试使用“F5”。
调试运行
  现在我们点击菜单栏上的“调试运行按钮(F5)”,这时程序将自动编译、连接、运行,然后
停在我们所设定的断点的行上。设置断点后,我们可以看见当前行的最左端有一个暗红的大圆点,具体图略,同学们可以单击“菜单栏”调试。一一对照下面的介绍查看,也可以在菜单栏下面的“调试栏”查看。
继续运行:表示继续执行程序,直到碰见下一个断点时为止
重新运行:表示重新从头开始运行程序
停止调试:表示中止现在的调试界面,返回到代码编写界面
逐语句: 单步执行命令。如果下一条即将执行的语句是一条函数调用语句,那么就进入到函数体内
逐过程: 单步执行命令。如果下一条即将执行的语句是一条函数调用语句,它不会进入函数体内,而是直接执行整个函数,并停到函数返回后的第一条语句上
快速监视:它可以允许程序员自定义想要监视的变量,并在“指定变量显示区”显示
调试程序后, 程序提示输入值:这里输入2000,回车,现在程序已经在设置的断点处停住
了,最左端的黄箭头指示着即将运行的下一条语句。这个时候可以看见坐下方“自动窗口”中有year变量值为“2000”,如下图所示
点击工具栏“逐语句或者F11”,由于这条语句会调用函数IsLeapYear()”,因此它会进行到“IsLeapYear ()”函数体内去执行,黄光标指示到函数内           
可以反复执行“单步执行命令”(即工具栏上的“逐语句(F11)”、“逐过程(F10)”按钮)来观察程序的流程,调试中途发现问题不想再调试,可以“终止调试”,也可以在“断点管理”处“删除断点”,“删除所有断点”,“禁用所有断点”。请同学们实践。   
快速监视
  通过“调试”菜单上的“快速查看”我们可以设定我们想要监视的变量,并在“监视显示区”中显示。
我们可以在最上面的输入框中输入我们想查看的变量的变量名或者表达式,然后我们可以点击“重新计算”按钮获到这个变量或表达式现在的值,这个值将在下面的显示区中显示,然后我们可以点击“添加监视”按钮把这个变量或表达式加入到“监视显示区”中,如下图所示:
界面风格
最后简单说一下VS2005的一些界面风格。
a) 鼠标单击“解决方案资源管理器”上方边,不松手,便可以随意拖动位置,共有5个提示位置可以停靠,如下图所示。
b) 如下图所示:建议初学者可以配置的工具栏上可以是:“标准”,“调试”,“文本编辑器”,其
中“文本编辑器”可以方便的给多行程序添加注视,缩进,系统提示输入信息等些功能。另外,单击源文件下每个文件或者在图中标记的“单击切换文件”均可以查看不同源文件。当然还有很多细节,希望大家慢慢发现。
c) 在VS2005中,为便于代码的管理和查看,可以将整个的函数部分折叠起来,即只剩下函数名,如果代码比较多,这样便于隐藏目前不用的代码,不用占用较大的空间。
单击函数前面的“-”号即可隐藏,再单击“+”又可以复原。如下图所示:
3.小结
本文只是简单介绍了VS2005下开发C程序的一个小小的例子。VS2005是非常强大的集成开发环境,希望同学们以此为良机,在编程的大道上更进一步。
4.附:连接lib静态库文件示例
    下面将egg提供的实例代码在VS2005上实现。
1. 按照前面的方法新建一个空的Win32控制台工程,将egg提供的两个lib文件<eggd.lib和egg.h>和头文件添加到当前工作目录<例如,我新建工程时的目录是:D:\UseEgg,则把前面的三个文件添加到这个目录下>。
2. 将头文件添加到当前的解决方案:在头文件处右键单击->添加->现有项,此时,系统会自动打开当前工组目录,将刚才copy进来的egg.件选中并添加即可。如下面2个图所示: 
3. 然后编写.C源文件或者导入一个现有的C文件
4. 设置连接库文件:使用快捷键Alt+F7或者“菜单栏”->egg属性打开useegg属性页,如下图所示:                                                           
5. 在打开的属性页设置:配置侧单击“链接器”->“输入”,在右侧出现的框中单击“附加依赖项”添加:eggd.lib msimg.lib,<在2个lib文件之间添加空格>,别的可以默认设置,不必理会,然后“确定”即可。
6.编译,运行就OK啦。注意在在编译时会出现“警告”信息,可以不必理会。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。