爱问知识人 爱问教育 医院库

C / C 编程说明: 在VC 6.0环境中调试C代码的方法和步骤!

首页

C / C ++编程说明: 在VC ++ 6.0环境中调试C代码的方法和步骤!


        

提交回答
好评回答
  • 2023-12-10 12:30:05

    (1)编辑. 您可以使用任何编辑软件将纸上编写的C语言程序输入到计算机中,并将C语言源程序文件* .c作为纯文本文件保存在计算机磁盘上(无法设置字体,字体大小等). ).

    (2)编译. 在编译过程中,使用C语言编译器将已编辑的源程序文件“ * .c”转换为二进制目标代码文件“ * .obj”. 编译器逐句检查源程序中的语法错误后,它不仅显示错误的位置(行号),而且还通知错误类型信息. 我们需要再次回到编辑软件来修改源程序的错误,然后再次编译直到消除所有语法和语义错误.

    (3)连接. 程序编译后生成的目标文件是可重定位的程序模块,不能直接运行. 该连接将由编译生成的每个目标程序模块与系统或第三方提供的库函数“ * .lib”相连接,以生成可执行文件“ * .exe”,该文件可以在没有开发环境的情况下直接在操作系统下运行

    (4)运行程序. 如果在测试之后运行可执行文件以达到预期的设计目的,则此C语言程序的开发完成. 如果操作中有错误,则表示程序处理的逻辑有问题. 您需要再次回到编辑环境,以进一步检查和修改源程序中的程序逻辑错误,并重复编辑→编译→连接→运行的过程,直到获得预期的结果.

    Visual C ++ 6.0(以下称为VC)是Microsoft启动的Visual Studio Developer Studio的组件,它为我们提供了一个集成的开发环境,该环境集成了程序创建,编辑,编译,调试和许多其他任务(IDE) ).

    VC集成开发环境功能强大,不仅提供大量向导(向导),而且还具有完整的帮助功能(MSDN). 因此,学习C编程的初学者无需完全了解开发环境的全部功能. 我们可以选择在安装VC时完全安装MSDN,然后在遇到问题时参考MSDN中的相关说明. 通过“开始”菜单或桌面快捷方式启动Visual C ++,以进入集成开发环境,如图1-1所示.

    图1-1 Visual C ++界面

    与大多数Windows应用程序一样,Visual C ++的顶部是菜单,然后是工具栏,中间是工作区(左侧窗口是项目工作区,C程序员可以在ClassView的Globals全局选项中查看它页面对于正在开发的全局变量和全局函数,右边的窗口是编辑窗口,它可以同时编辑多个文档. 底部状态栏上方的窗口是输出窗口,主要用于显示编译,连接信息和错误提示. 我们可以双击错误提示行,VC将在编辑窗口中打开错误代码所在的源程序文件,并迅速将光标定位到错误的行.

    在编辑窗口中输入和编辑程序源代码时,源代码将显示“语法着色”. 默认情况下,代码为黑色,带有绿色注释和蓝色关键字(指VC保留的public,private,new,int等). 我们还可以通过“工具”菜单下“选项”对话框中的“格式”选项卡进一步设置指定的颜色.

    2.1项目

    在开发应用程序时,通常会有许多源程序文件,菜单,图标,图片和其他资源. VC通过“项目”管理以上资源. 因此,当开始开发C程序时,我们将在指定的文件夹中创建一个扩展名为.DSW的项目工作区文件,其中包括项目中所有文件的名称,文件所在的目录,编译器和链接器关于项目工作的选项和其他信息;此外,还有一个扩展名为.DSP的项目日志文件怎么用vc6.0编写c语言,以及一个扩展名为.OPT的工作区选项文件(包含Developer Studio的所有个人设置,包括颜色,字体,工具栏,打开哪个文件以及如何MDI窗口和最新调试中的断点位于)等. 在项目工作区中打开文件时,其他文件会自动打开. 子文件夹,如Res(资源),Debug(调试)和Release(发行版)也将在此文件夹下创建.

    2.2修改

    在编辑窗口中打开,浏览文件,输入,修改,复制,剪切,粘贴,查找,替换,撤消和其他操作可以通过菜单或通过工具栏按钮完成,这些操作与Word和其他窗口编辑器的用法完全相同,因此在此不再赘述.

    2.3辅助

    VC不仅提供“语法着色”来帮助我们阅读程序,而且还可以通过一些快捷键来检查常见的括号不匹配错误. MSDN还可以在编辑过程中提示变量名和函数名的存在. 许多程序员使用诸如Visual Assist X之类的工具来协助开发并减少程序错误的可能性.

    3. 开发C程序

    3.1开发单个C语言程序

    1. 创建一个工作文件夹.

    由于开发过程将产生一系列文件,因此建议为每个开发的新C程序创建一个工作文件夹. 您还可以将所有工作文件夹放在一起,例如E: \ LXH \ EX01-01,E: \ LXH \ EX03-02等.

    2. 启动Visual C ++.

    3. 创建一个新的C语言源程序.

    选择菜单: “文件”下的“新建”菜单项怎么用vc6.0编写c语言,出现如图1-2所示的新(新)对话框.

    图1-2在“文件”菜单下选择“新建”菜单项

    在“文件”选项卡下选择“ C ++源文件”,在“ E: \ LXH \ EG01-01”文件夹: eg01-01.c中创建一个C程序,如图1-3所示.

    图1-3“文件”标签

    4. 输入并编辑源程序.

    注意不要输入中文标点符号,而是按Ctrl + S来及时保存文件,如图1-4所示.

    图1-4输入源程序

    5. 编译并链接.

    单击“构建MiniBar”工具栏上的“构建”按钮进行编译和连接. 您也可以在“生成”菜单或“全部重建”菜单项下选择“生成(F7)”菜单项. 一种更简单的方法是直接按F7功能键. Visual C ++将提示创建默认工作区,如图1-5所示.

    图1-5创建默认工作区

    单击“是”按钮. 如果编译完全成功,它将显示“ 0个错误,0个警告”. 如果存在语法错误,请返回4修改源程序. 然后,再次编译,直到消除所有错误为止.

    6. 运行

    单击“构建MiniBar”工具栏上的“执行程序”按钮以?运行该程序. 您也可以在“生成”菜单下选择“执行eg01-01.exe”菜单项. 一种更简单的方法是直接按功能键Ctrl + F5运行该程序. 如果运行结果正确,则完成C语言程序的开发. 否则,有必要为程序的逻辑错误返回4. 修改源程序,然后重复编译链接运行过程,直到获得预期的结果.

    7. 关闭

    如果不退出Visual C ++,然后开发下一个C程序,则需要选择“文件”菜单下的“关闭工作区”菜单项以关闭当前工作区,然后按照步骤1-7进行开发下一个C. 程序

    3.2添加多个C语言源程序

    在用C开发应用程序时,经常使用多个C源程序.

    现有的C语言源程序文件“ sayhello.c”:

    #include

    void sayhello(void)

    {

    printf(“ hello \ n”);

    }

    将其添加到“ eg01-01.c”的步骤如下: 首先打开“ eg01-01.dsw”,单击项目工作区的ClassView页面上的Globals选项,然后选择“添加到项目”. 项目“文件.”下的“菜单项”

    图1-6添加多个源程序文件

    然后在“将文件插入项目”对话框中选择“ sayhello.c”:

    图1-7选择要添加的源程序文件

    添加子函数描述并调用main()函数:

    图1-8添加子功能描述并调用

    程序运行的结果如图1-9所示:

    图1-9程序运行结果

    C语言编程的初学者常常在看到程序错误时不知所措. 一些学生认为,只要程序运行顺利,只要程序运行顺利,他们就不会认为程序仍然存在一些潜在的危险. 为了不犯任何错误,您需要了解C语言编程的错误类型和纠正方法. C语言编程错误可以分为语法错误,连接错误,逻辑错误和操作错误.

    语法错误: 编写程序时违反了C语言语法. 语法错误,关键字拼写错误,标点符号丢失,数据操作类型不匹配,括号不匹配等都是语法错误. 当进入程序编译阶段时,编译系统将给出错误行和相应的“错误消息”. 我们可以双击错误提示行以将光标快速定位在错误代码所在的错误行上. 根据错误提示修改源程序,以消除错误.

    连接错误: 如果使用了错误的函数调用,例如编写了错误的函数名称或不存在的函数名称,则编译系统在连接该错误时会发现此错误. 纠正方法与1相同.

    逻辑错误: 尽管程序中不存在上述两个错误,但程序运行的结果与预期结果不一致. 逻辑错误通常是由于程序使用的算法出现问题,或者编写的程序逻辑与算法完全不匹配. 逻辑错误比语法错误更难消除. 它要求程序员逐步调试程序,以检查循环和分支调用是否正确以及变量的值是否按预期变化.

    运行错误: 程序中不存在上述错误,但运行时间错误. 运行错误通常归因于程序的低容错能力. 在设计中可能只考虑了一部分数据,而不适用于其他数据. 例如,当打开文件时,在不检测打开是否成功的情况下读写文件. 因此,在程序运行时,如果可以成功打开文件,则程序将正确运行,否则程序运行错误. 为了避免这种类型的错误,必须反复测试程序并完成算法,以便程序可以适应各种情况下的数据.

    为了方便程序员消除程序中的逻辑错误,VC提供了强大的调试功能. 每当我们创建新的VC项目时,默认状态均为Debug版本. 调试版本将执行编译命令_D_DEBUG以将调试语句ifdef头文件的分支代码添加到可执行文件中;同时添加的调试信息使开发人员可以观察变量并逐步执行程序. 由于调试版本包含很多信息,因此,调试版本生成的可执行文件将比发行版本大得多.

    4.1设置断点

    VC可以在程序中设置断点以跟踪程序的实际执行流程. 设置断点后,可以按“ F5”功能键启动调试模式,程序将在该断点处停止. 然后我们可以单步执行程序,观察变量的值如何变化,并确认程序正在按预期运行. 设置断点的方法是: 将光标停在要暂停的行上,选择“构建MiniBar”工具栏按钮“插入/删除断点(F9)”按钮以添加断点,如图1-10所示,断点在代码行的最左侧出现一个深红色的实心点,表示该断点已成功设置.

    图1-10设置断点

    如果在此行上设置了断点,请再次按“ F9”功能键以清除断点.

    4.2调试命令

    我们也可以在VC的“ Build”菜单下的“ Start Debug”中单击Go(F5)命令以进入调试状态,并且Build菜单自动变为Debug菜单,提供以下专用调试命令:

    Go(F5)从当前语句运行程序,直到程序结束或断点为止.

    单步执行(F11)逐步执行下一条语句并跟踪遇到的函数.

    Step Over(F10)单步执行(跳过调用的函数)

    运行到光标(Ctrl + F10)将程序运行到光标所在的代码行.

    退出(Shift + F11)在函数调用之外执行该语句,并在函数调用语句处终止.

    停止调试(Shift + F5)停止调试并返回正常的编辑状态

    在运行程序以启动调试模式时,必须使用Go命令(而不是Execute). 在调试模式下,程序在某个语句处停止,并且该语句的左侧将出现一个的小箭头. 我们可以随时中断程序,单步执行,查看变量并检查调用状态. 例如,按“ F5”功能键进入调试模式,程序运行到断点并暂停;连续按“ F10”功能键,然后逐行执行程序,直到编程操作结束.

    应该注意,如果要逐步执行程序,编写程序时必须每行只写一个语句.

    4.3查看变量

    在逐步执行程序的过程中,我们可以在Variables子窗口和Watch子窗口中动态查看变量的值,如图1-11所示. Variables子窗口会自动显示当前运行上下文中每个变量的值,而Watch子窗口仅显示在此Watch子窗口中输入的变量或表达式的值. 随着程序的逐步操作,您也可以直接使用鼠标指向程序中的变量以查看其值. 例如,在图1-11中,我们可以清楚地看到程序已经为自动变量first,second和big分配了内存,但是它们的初始值是随机的.

    图1-11查看变量

    “变量”子窗口具有3个标签: “自动”,“本地”和“此”.

    “自动”选项卡: 显示当前语句和上一个语句中使用的变量. 它还显示了使用“跳过”或“退出”命令后函数的返回值.

    Locals选项卡: 显示当前函数使用的局部变量.

    此选项卡: 显示由此This指向的对象(C语言不使用此对象).

    如果有很多变量,并且难以查看自动显示的“变量”窗口,则也可以使用右侧的“观察”

    在子窗口中添加要监视的变量名称. 例如,图1-11在Watch1子窗口中添加了变量“ first”. 我们也可以直接将变量拖动到Watch

    子窗口中的空白“名称”框. 添加完成后,将显示变量的值. 随着单步调试的进行,您将首先看到变量

    的值

    逐渐变化. 如果每个变量的值根据设想的方法逐渐变化,并且程序操作结果正确,则说明开发成功完成. 如果发现每个变量的值变化与假设不一致,表明程序有逻辑错误,则需要停止调试,返回编辑窗口,检查错误并修改程序.

    4.4查看内存

    数组和指针指向内存连续部分中的几条数据. 您可以使用内存功能来显示由数组和指针指向的连续内存的内容. 单击“调试”工具栏上的内存按钮,弹出一个对话框,输入数组或指针的地址,即可显示该地址所指向的内存内容. 如图1-12所示:

    图1-12检查内存

    G***

    2023-12-10 12:30:05

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):