C语课设心得分享(三)
调试。
以前咱们写课后习题,一般也不需要使用调试,如果程序编译error,根据错误信息就可以改好;如果是结果错误,那么在稿纸上过几遍基本也可以得出结果。
但咱们这个课设比较大,就需要很多调试的过程,尤其是在链表/开关变量的调试上。其实我对调试也不是很了解,但我跟大家分享一些我所接触到的调试方式。
F10和F11是非常常用的,两者的区别是F11是单步调试,但是会进入到子函数中。F10的话也是单步,但是会跳过模块。感觉平时用F10更多一些。在
用单步调试时,监测变量的窗口可以智能显示出你可能要看的变量的值,相当方便。比如咱们可以用单步调试的功能,看看程序的流程是怎么走的,这样可以看出很
多问题,比如程序的条件判断、分支流程是不是走错了。
说到变量监测,也可以手动添加你想看的变量,甚至是表达式的值。可能需要手动添加,很方便,大家自己看一看。
但是咱们的课设有个很大的障碍,就是在EasyX编出来的窗口运行时,似乎是不能同时调试的,如果想调试,就得把运行中断,或者说暂停;还有一个问题,就
是如果程序写了很长,但咱们只需要在一个小部分中单步调试,总不能从头单步调试吧?或者有一个循环循环了几百次,但用单步调试的话就得按好几百次按键。所
以咱们经常需要使用断点这个功能。在代码的行数左侧的空白处单击一下,就可以添加一个红色的实心圆,这就代表添加了一个断点。在调试模式下,程序运行到断
点时就会暂停。这时候就可以比较方便的看变量的值,按需做出调整。举个例子,咱们在需要仔细单步调试的部分之前添加一个断点,想办法让程序运行到断点,程
序会暂停,然后就可以用F10一步一步的走。
咱们一般是用F7进行编译,Ctrl+F5运行,而F5就是调试。断点的话也有快捷键,但一般用鼠标来点就够用了。
条件断点也是个很不错的功能,可以有条件地中断程序。其实C语言中还有个很好用的断言功能,但我也没怎么用过,暂且按下不表。断言功能举个例子,比如我有
个变量,flag_status,如果是1就运行程序,0是暂停程序。那咱们可以在某处添加一个断点,断点的条件是"1 ==
flag_status",那就只有在程序在运行状态时才会执行这个断点。这个用处还是挺多的,可以节省很多调试的时间或者脑力。
其实咱们这个课设的弹性是很大的,我个人的感受是,有些微小的BUG改起来是极为耗费时间和脑力的,有些BUG越改问题越多,但改完以后,很可能都不会被
看你程序的人注意得到。所以很多调试工作在我看来都是一个对自己负责的工作,而不是对老师,或者是对最后的分数负责的工作。
C语课设心得分享(三)的更多相关文章
- C语课设心得分享(二)
咱们今儿说说IDE的事儿. IDE是「集成开发环境」的意思,比如咱们常用的VC6.0,就是开发C语言所用的IDE的一种.对于IDE的认识,可能有些朋友有点儿模糊,咱们捋一捋,我也会给出一些IDE方面的 ...
- C语言课设心得分享(一)
今儿上完课设,老师果然讲的比较少,周四还不用去,看来还是学生自己折腾.我在做课设的过程中,攒了一些心得/体会,希望能和大家分享分享,也希望能一起探讨探讨.如果是我能回答的问题,我很乐意能够提供帮助. ...
- 将C语课设传到了Github和Code上 2015-91-18
一直听说Git好使,以前捣鼓过没弄成,现在考完试了终于可以静下心来研究研究. 哎,我要是当时做课设的时候就用Git,也能省下不少事呢. 使用的Git教程,刚看个开头: 廖雪峰的Git教程 http:/ ...
- 计算机网络课设之基于UDP协议的简易聊天机器人
前言:2017年6月份计算机网络的课设任务,在同学的帮助和自学下基本搞懂了,基于UDP协议的基本聊天的实现方法.实现起来很简单,原理也很简单,主要是由于老师必须要求使用C语言来写,所以特别麻烦,而且C ...
- 【js课设】电子画板01
这学期web开发课的课设选了电子画板课题.(人家本来想做富文本编辑器的嘛然鹅老师在第二版里把这题删掉了。゚ヽ(゚´Д`)ノ゚。) 主要考虑的有[界面美观][画笔类型][画布分层]这三个点了. [界面美 ...
- C语言课设——电影院选票系统
C语言课设--电影院选票系统 1.课题介绍 大家都爱看电影,现请参考一个熟悉电影票预订系统,实现C语言版的订票系统.了解订票如何实现的.系统主要有2类用户:管理员用户和顾客用户. 管理员用户 1.电影 ...
- 2018-2019学年第一学期Java课设--魔塔
目录 Magic-Towers 一.团队名称.团队成员介绍.任务分配 团队名称:MoTa 团队成员介绍 任务分配 二.项目简介 三.项目采用技术 四.项目亮点 主界面显示主要信息功能 游戏动画 五.项 ...
- Putty的噩梦——渗透工具PuttyRider使用心得分享
我们在入侵到一台主机的时候,经常会看到管理员的桌面会放着putty.exe,这说明有很大的可能性管理员是使用putty远程管理主机的. 该工具主要是针对SSH客户端putty的利用,采用DLL注入的方 ...
- Qt在线技术交流之OpenGL、Quick以及所经历项目开发心得分享
时间:3月25日晚上7:30 主题:Qt在线技术交流之OpenGL.Quick以及所经历项目开发心得分享 直播:http://qtdream.com 主页.全民TV,可能会加上其他的直播平台进行转播 ...
随机推荐
- 02_java语法基础_课程动手动脑问题以及课后实验性问题及解答集锦
Answer: 动手动脑: 1:1.1--仔细阅读实例:EnumTest.java,运行它,分析运行结果? 1.2--你能得到什么结论?你掌握了枚举变量的基本用法了吗? answer:枚举类型是引用类 ...
- ps通道磨皮
1.Ctrl+J 复制一个新图层2.进入通道面板,复制一个噪点最多的通道3.滤镜--其他--高反差保留 (我一般设数值13)4.图像--计算 (混合模式选择强光) 计算3次,得到Alpha3 5.按住 ...
- access数据库select查询top时无效的解决办法
access数据库select查询top时有时无效,原因就是在使用Order by时,且排序的条件中数据有重复的. 比如:select top 10 * from table1 order by cd ...
- Dockerfile指令
指令的一般格式为INSTRUCTION arguments,指令包括FROM.MAINTAINER.RUN等. FROM 格式为FROM <image>或FROM <image> ...
- php 读取文件readfile
<?php //读取文件 //echo readfile('aa.txt'); //打开文件更好的方法是fopen $f = fopen('aa.txt' , 'r') or die('unab ...
- UML精粹2 - 开发过程
迭代和瀑布过程 两者的本质区别是,你如何将一个项目分解为更小块. 瀑布风格基于活动来分解项目.为了构建软件,你不得不做某些活动:需求分析.设计.编码和测试.为期一年的项目可能有2个月的分析阶段,然后是 ...
- MessageBox
首先要知道MessageBox返回的值为DialogResult类型.返回值可能有如下: DialogResult.OK //点击“确定”按钮后返回的值 DialogResult.YES //点击 ...
- mysql日志详细解析
MySQL日志: 主要包含:错误日志.查询日志.慢查询日志.事务日志.二进制日志: 日志是mysql数据库的重要组成部分.日志文件中记录着mysql数据库运行期间发生的变化:也就是说用来记录mysql ...
- Apache Httpd + Subversion 搭建HTTP访问的SVN服务器
最近要搭建一个SVN服务器.简单安装之后,本地访问没有问题,但作为服务器肯定是需要HTTP访问.搜索之后,以下是我按照网上的资料搭建的过程,以备后用和参考.(所有软件安装步骤略,没有特殊的,如果没有特 ...
- [ActionScript 3.0] AS3.0 火焰效果
package { import flash.display.Sprite; import flash.display.* import flash.events.Event; import flas ...