微软精心打造的VC调试器确实非常方便,再来看个watch窗口的小技巧:用作计时器
有时候可能想要知道个函数或者一段代码运行需要的粗略时间。一般是假如一些计时的处理,比如函数开始时调用GetTickCount()记录开始时间,完了在调用一边获得结束时间,一减就出来~~ 不复杂,但是确实需要动代码。实际上调试器中的watch窗口就能帮你简单的完成这个功能。
很简单的代码,main函数中调用Sleep(1000)延时1000毫秒,再调用自定义的MyDelay(100)延时100毫秒,总共延时1100毫秒。在vc6中输入代码后,在Sleep(1000)和return 0;这两行各设置一个断点,然后按F5进入调试状态。调试器会停在Sleep(1000)这行。这时候在Watch窗口中输入@clk/1000,这时候看到Value是816(每次都会不一样,不精确嘛!)。这是说明从程序启动到被断点截下,总共花了816毫秒。@clk是个伪寄存器,计时用,单位是微妙。
接下来,再输入一个@clk=0,会看到@clk/1000的值也清零了。如下图:
按F5继续运行,在return 0;这行断下来,也就是说延时1100ms后,我们看到@clk/1000的值变化了。
@clk/1000的Value是1108ms,粗略的计时还是没问题的。