一些小技巧

關注:
一個好的程序員不應該把所有的判斷交給編譯器和調試器,應該在程序中自己加以程序保護和錯誤定位,具體措施包括:

對於所有有返回值的函數,都應該檢查返回值,除非你確信這個函數調用絕對不會出錯,或者不關心它是否出錯。
一些函數返回錯誤,需要用其他函數獲得錯誤的具體信息。例如accept返回INVALID_SOCKET表示accept失敗,爲了查明 具體的失敗原因,應該立刻用WSAGetLastError獲得錯誤碼,並針對性的解決問題。
有些函數通過異常機制拋出錯誤,應該用TRY-CATCH語句來檢查錯誤
程序員對於能處理的錯誤,應該自己在底層處理,對於不能處理的,應該報告給用戶讓他們決定怎麼處理。如果程序出了異常, 卻不對返回值和其他機制返回的錯誤信息進行判斷,只能是加大了找錯誤的難度。
另外:VC中要編制程序不應該一開始就寫cpp/h文件,而應該首先創建一個合適的工程。因爲只有這樣,VC才能選擇合適的編譯、連接 選項。對於加入到工程中的cpp文件,應該檢查是否在第一行顯式的包含stdafx.h頭文件,這是Microsoft Visual Studio爲了加快編譯 速度而設置的預編譯頭文件。在這個#include "stdafx.h"行前面的所有代碼將被忽略,所以其他頭文件應該在這一行後面被包含。
對於.c文件,由於不能包含stdafx.h,因此可以通過Project settings把它的預編譯頭設置爲“不使用”,方法是:
彈出Project settings對話框
選擇C/C++
Category選擇Precompilation Header
選擇不使用預編譯頭。
http://www.yzcc.com/yzcc/vv/08475592434.html


其他技巧:

1.在調試狀態下怎樣查看錯誤消息(GetLastError())?
通常可以用GetLastError()得到錯誤編號然後用FormatMessage(...)得到錯誤描述。
這裏有一個更直接的辦法:在Watch窗口添加@err,hr

2.怎樣知道程序是否有內存泄漏(Memory Leak)?
在VC開發環境下Press [F5],在調試狀態下運行程序,測試有可能出現內存泄漏的操作,關閉程序,在Output窗口查看運行信息.如果出現泄漏,在Output中會有記錄。當然,不能完全依靠這種方式來發現程序運行有內存泄漏。

3.當某一變量滿足某種條件時,停止在斷點.
如以下一程序片段:
2 int iLocation;
...
30 iLocation++
...
要求: 在line30設有斷點,並想在iLocation>100

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章