一些小技巧

2021-05-10 14:30:17 字數 1318 閱讀 5004

關注:

乙個好的程式設計師不應該把所有的判斷交給編譯器和偵錯程式,應該在程式中自己加以程式保護和錯誤定位,具體措施包括:

對於所有有返回值的函式,都應該檢查返回值,除非你確信這個函式呼叫絕對不會出錯,或者不關心它是否出錯。

一些函式返回錯誤,需要用其他函式獲得錯誤的具體資訊。例如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

選擇不使用預編譯頭。

其他技巧:

1.在除錯狀態下怎樣檢視錯誤訊息(getlasterror())?

通常可以用getlasterror()得到錯誤編號然後用formatmessage(...)得到錯誤描述。

這裡有乙個更直接的辦法:在watch視窗新增@err,hr

2.怎樣知道程式是否有記憶體洩漏(memory leak)?

在vc開發環境下press [f5],在除錯狀態下執行程式,測試有可能出現記憶體洩漏的操作,關閉程式,在output視窗檢視執行資訊.如果出現洩漏,在output中會有記錄。當然,不能完全依靠這種方式來發現程式執行有記憶體洩漏。

3.當某一變數滿足某種條件時,停止在斷點.

如以下一程式片段:

2 int ilocation;

...

30 ilocation++

...

要求: 在line30設有斷點,並想在ilocation>100

一些小技巧

protected void repparent itemdatabound object sender,system.web.ui.webcontrols.repeateritemeventargs e 在父datalist的itemdatabound事件裡面寫子datalist的資料來源 繫結 ...

一些小技巧

protected void repparent itemdatabound object sender,system.web.ui.webcontrols.repeateritemeventargs e 在父datalist的itemdatabound事件裡面寫子datalist的資料來源 繫結 ...

SQL一些小技巧

1.把某個字段重新生氣序列 從1到n declare i int set i 0 update table1 set i i 1,field1 i 2.按成績排名次 update 成績表 set a.名次 select count 1 from 成績表 b where a.總成績 b.總成績 fro...