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,可能会加上其他的直播平台进行转播 ...
随机推荐
- [原创]cocos2d-x研习录-第一阶 背景介绍 之 cocos2d-x特点
上一节了解Cocos2D家族史,本节关注Cocos2D家庭的一个重要分支Cocos2D-x.Cocos2D-x是Cocos2D的C++移植版本,它的最大特性是跨平台,使开发者编写一套C++代码 ...
- 使用as3控制动画的播放与暂停
1.需要两个按钮元件 2.在属性面板为两个按钮元件分别命名为pausebutton与playButton 3.代码 stop(); pausebutton.visible = false; playB ...
- Nginx-uri、request_uri、document_uri之间的区别
在nginx中有几个关于uri的变量,包括$uri.$request_uri.$document_uri,下面看一下他们的区别 :$request_uri: /stat.php?id=1585378& ...
- [WCF]设置拦截器捕捉到request和reply消息
WCF进阶学习ing... 在熟练掌握了ABC的使用以后,就开始想着去了解WCF是怎么通信的了.首先是服务描述语言wsdl,它定义了服务的描述等等,用于让外界知道这个服务的ABC是什么.另外一个比较重 ...
- elasticsearch单机多实例环境部署
elasticsearch的功能,主要用在搜索领域,这里,我来研究这个,也是项目需要,为公司开发了一款CMS系统,网站上的搜索栏功能,我打算采用elasticsearch来实现. elasticsea ...
- 切服务器时请注意robots.txt文件
最近两天切服务器时又出现测试机器忘记改robots.txt文件的情况,以后就用个二级域名做测试,测试的机器也不对robots.txt作限制.
- 开放地址法实现HashTable
前注:本文不是讲解Java类库的Hashtable实现原理,而是根据计算机哈希表原理自己实现的一个Hashtable. HashTable内部是用数组存放一个(Key-Value pair)键值对的引 ...
- CRM 日期类型的一些处理JS
//当前日期 var now = new Date(); //换算为毫秒数 var now_ms = Date.UTC( now.getFullYear(), now.getMonth(),now.g ...
- eclipse配置javacv0.8
之前配置了一次javacv,但是忘了做笔记,这次又重新查了一遍资料,很多东西模棱两可,浪费了很多时间,这次配置成功,总结如下,希望能帮到大家. 如不明确,可以联系我. javacv下载 https ...
- 洛谷P3371 【模板】单源最短路径
P3371 [模板]单源最短路径 282通过 1.1K提交 题目提供者HansBug 标签 难度普及/提高- 提交 讨论 题解 最新讨论 不萌也是新,老司机求带 求看,spfa跑模板40分 为什么 ...