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,可能会加上其他的直播平台进行转播 ...
随机推荐
- Linux下获得系统时间的C语言实现
Linux下获得系统时间的C语言的实现方法 #include<time.h> //C语言的头文件#include<stdio.h> //C语言的I/O int main() ...
- Codeforces 733F Drivers Dissatisfaction
题意:有n个点,m条边,每条边有不满意度w[i],以及减小一个不满意度代价c[i],问给你s元用来减少代价,找到一个总不满意度最小的生成树,保证有解.(减少后的不满意度可以为负数)思路:显然所有的钱都 ...
- 如何让WordPress支持上传更多文件类型
如何让WordPress支持上传更多文件类型 可以在functions.php中这样写: 1 2 3 4 5 6 7 8 9 add_filter('upload_mimes', 'wpdit_f ...
- Unity Shader——Writing Surface Shaders(0)
从今天起,开始翻译Unity关于shader的官方文档.翻译水平比较一般,目的主要是通过翻译来提升对shader的见解,也让其他人更容易的了解shader.以下开始正文内容: 编写Surface Sh ...
- IOCP简单实现
本人工作是服务端性能测试,因工作需要开发机器人框架,选用底层的时候看到网上满大街的IOCP介绍,还有说IOCP比WSAAsyncSelect复杂等等,所以只好转WSAAsyncSelect实现. 因并 ...
- mysql--1130ERROR
问题一:mysql 用户登录不用验证密码(用户已设密码) 安装好mysql 后,我发现我设立了密码,同样可以不用密码就能登陆 cmd>mysql cmd>select current_us ...
- MVC4.0网站发布和部署到IIS7.0上的方法
最近在研究MVC4,使用vs2010,开发的站点在发布和部署到iis7上的过程中遇到了很多问题,现在将解决的过程记录下来,以便日后参考,整个过程主要以截图形式呈现 vs2010的安装和mvc4的安装不 ...
- c#数据类型之值类型和引用类型
C#数据类型分隔为值类型和引用类型.而所用数据类型都继承自Object. 1. 值类型继承自System.ValueType,引用类型继承自System.Object.ValueType也直接继承自O ...
- IntelliJ IDEA使用记录
一.快捷键 1. 生成main方法 在编写代码的时候直接输入psv就会看到一个psvm的提示,此时点击tab键一个main方法就写好了. psvm 也就是public static void main ...
- .net 中生成二维码的组件
http://qrcodenet.codeplex.com/