开发已经有一段时间了,总结一下。
今天发现有一处图形显示不正确,用printf跟踪发现因为多画了一处,但是
绘图函数调用一次只会画一条,很明显是有另一个函数不知不觉画了。调试了很长一段时间,也没调试出来什么结果,因为bug的出现不规律。后来忽然想到尽管时钟已经关闭,但是它之前产生的消息还是没有清空,仍然会处理,果然如此,在时钟消息中先判断时钟是否关闭,然后再作处理,就没有出现过错误。
前两天还有点感触,没有记下来,现在已经忘了。
今天又想起来一些,接着写。
在家写俄罗斯方块的时候,把==写成=号,结果调试了近一天的时间才发现,以后见了==号就特别有感触。
有些东西尽管知道但是没有用过一时也意识不到,掌握一件事物看多少书用处往往不如动手写写更有感触。
我很久就知道局部变量函数结束后就会释放,前些日子还是范了一个错误。在一个函数体内建了一个局部变量,然后将它的指针传给另一个函数,后来发现结果实一堆乱码,仔细发现这个指针复制了好几次,再其他函数中也用到过,此时最初的函数早已结束,堆栈已经释放,于是造成了错误。
我早也知道const char* 是一个指向const char的指针,我早也知道const修饰的变量默认是static的,前些日子在csdn上看了一个帖子。
还有就是引用,我知道引用其实是变量的别称,也知道当变量不匹配时要 创建一个临时变量。看这个例子:
Void swap(long& a,long& b)
{
Long temp;
Temp=a;
A=b;
B=temp;
}
Int a=6,int b=5;
Swap(a,b)
结果就是什么都没有发生,交换的仅是临时变量。
但是只有犯过一次错误后对此才有深刻的了解,才能避免不犯另一次错误。