说来我也是个奇怪的人,当时间在自己手里时,从来都是虚度。而当他人需要麻烦你的时候,却觉得在占用我的时间。
题外话暂且不提,来说说关于程序的事情。

是这样的:

之前的程序不是她写的,是从网上copy下来的,结果发现还可以用。很是兴奋。但是呢,导师需要她添加一些功能,因为c的原因,导师把这个任务推给了我。

这个模块也是之前别人给添加了,单独测试的时候发现没有问题,但是一涉及到别的模块,出错率特别高。

这让我想起,不是自己的孩子,都喜欢给瞎整。
以前遇到这样的问题,我基本上都是翻倒重来,可那天看了篇文章,一个优秀的程序员能迅速理解代码的意思,也就是说修改一下就能用,是必须的。

我没有做到。


也就是说,当你需要添加功能的时候,一定要注意会不会对之前的工作产生影响。高内聚低耦合实在是要写一个大项目所必须的。全局变量也是不能乱添加的。越大的程序,让人看的越晕。

对于变量这些东西,在定义的时候一定要加上注释,谁愿意花半天时间来搞明白你这个i,j到底是什么意思。

这次暴露出来的问题是:

  • 关于多线程的编写,从根本上来说就是一窍不通
  • 关于CString( Class of String in MFC)有很多问题。比如

CString arr=L""; arr.isEmpty()? 应该不是,null 不等于""(待议----------------------)

  • 关于winpcap抓包,只是个很模糊的概念,不知道抓包的过滤到底是怎么回事。是过滤显示还是过滤抓包。这个本科生的所有过滤都是建立在显示过滤上,实际操作中不是很方便。
  • 关于调试,有很多的问题。虽然说是对mfc也不是很熟悉。比如说为了监控一个程序或者看看流程,写了一大堆的MessageBox(),实在是不可取的方法。这个在文章最后我会详细的说明一下有关调试的问题。

调试

vs2010+在调试方面做的确实不错。
因为之前本科有A题的经验,所以很多调试都是F10下执行的,效率很低,而且花费的时间非常长。还有在监控窗口下设置了很多的监控点。
这些出现的问题都可以用

设置断点来完成。 尤其在mfc等可视化的程序下,用F10简直是效率低到要死。断点加F5才是王道

在运行调试的时候发现Vs一个很好的功能。把鼠标指针放在已经执行过的变量上,所有的信息都会显示出来,因此我们在不需要过程逐一执行的情况下可以不用设置监控点就可以看到相关的变量情况。

最后在公用的变量上,或者各个模块上交叉使用的变量上,一定要注意,调试的时候你常会发现

擦,竟然走到这里了。仔细一想,走到这里,确实也没错。

编码容易,维护不易,且行且珍惜。

我终于知道为什么市场上C的程序员薪水比较高了,因为这些调试确实有时候会让人崩溃,抓狂。

还有,那个F12键,看变量定义和函数声明很方便,也很实用。

主要是,平时应该强迫自己去用这些东西,而不是看别人用了才幡然大悟


Yang_River
156 声望7 粉丝

引用和评论

0 条评论