天天看點

實用調試技巧

記憶體有棧區,堆區,靜态區,棧區存放局部變量。棧區的預設使用,先使用高位址處的空間,再使用低位址處的空間。數組的下标的增長,位址由低到高變化,正式由于棧區的使用是先用高位址再用低位址,是以數組超出範圍之後的位址會往i所在的位址方向走,當超出範圍的數組元素來到和i同一個位址,并且被指派為0時,下一輪循環就開始了,并且進入了死循環。VC6.0下面<=10就會死循環。gcc編譯器<=11 就會死循環。vs2013 <=12 死循環。這個時候在Release版本下進行調試會發現,會将代碼優化,将記憶體結構進行優化,i的位址是小于arr的位址的。 這個是把對于i的定義放在arr之後顯示的報錯 libpng warning: iCCP: cHRM chunk does not match sRGB,本人使用的編譯器是MSVS2019。

1.代碼運作正常

2.bug少

3.效率高

4.可讀性好

5.可維護性高

6.注釋清晰

7.文檔齊全

常見的coding技巧

1.使用assert

2.盡量使用const

3.養成良好的編碼風格

4.添加必要的注釋

5.避免編碼的陷阱

很煩的一點,當時調試的時候NULL一直顯示未定義,查了之後說是需要stdio.h,我也引用了啊,,然後我就想到了C語言之中一直存在的語序問題,最後發現,這個頭檔案需要引用在NUL的使用之前,這個函數的優化還未完成,之後還會有更加好的版本