原创 strtol函數

long int strtol(const char *nptr, char **endptr, int base)strtol()會將nptr指向的字符串,根據參數base,按權轉化爲long int, 然後返回這個值。參數base的

原创 關於const重載

對於基本數據類型,函數的參數前面加不加const都是一樣的,但對於指針和引用,參數前面加const與不加const是不同類型的參數,因此是重載函數。  int comp(int a) { return a; } int comp(con

原创 關於構造函數 析構函數和虛函數的關係

構造函數不能聲明爲虛函數的原因是:         解釋一:所謂虛函數就是多態情況下只執行一個,而從繼承的概念來講,總是要先構造父類對象,然後才能是子類對象,如果構造函數設爲虛函數,那麼當你在構造父類的構造函數時就不得不顯示的調用構造,

原创 stl中相等和等價的區別

  STL充滿了比較對象是否有同樣的值。比如,當你用find來定位區間中第一個有特定值的對象的位置,find必須可以比較兩個對象,看看一個的值是否與另一個相等。同樣,當你嘗試向set中插入一個新元素時,set::insert必須可以判斷那

原创 結構體對齊的具體含義(#pragma pack)

結構體對齊的具體含義(#pragma pack) 朋友帖瞭如下一段代碼:  #pragma pack(4)  class TestB  {  public:    int aa;    char a;    short b;    c

原创 closehandle

CloseHandle()函數的使用??很多程序在創建線程都這樣寫的:............ThreadHandle = CreateThread(NULL,0,.....);CloseHandel(ThreadHandle );。。

原创 extern c

extern "C"的用法解析   http://blog.sina.com.cn/u/494a1ebc010004g5   C++中extern “C”含義深層探索                                   

原创 WaitForSingleObject 的討論

問: 衆所周知,在用戶模式下等待某一個線程或其他事情的發生是要浪費CPU時間的,但若在內核模式下,比如WaitForSingleObject就不會佔用CPU時間(除了兩種模式之間的切換時間),那麼系統是如何做到的呢,難道她就不需不斷檢測相

原创 socket編程

    Socket是應用層與TCP/IP協議族通信的中間軟件抽象層,它是一組接口。在設計模式中,Socket其實就是一個門面模式,它把複雜的TCP/IP協議族隱藏在Socket接口後面,對用戶來說,一組簡單的接口就是全部,讓Socket

原创 C++的成員函數作爲回調函數

如果試圖直接使用C++的成員函數作爲回調函數將發生錯誤,甚至編譯就不能通過。通過查詢資料發現,其錯誤是普通的C++成員函數都隱含了一個傳遞函數作爲參數,亦即“this”指針,C++通過傳遞一個指向自身的指針給其成員函數從而實現程序函數可以

原创 歸納

1 調用sleep函數,可以使線程自願放棄他剩餘的時間片 2 可以將0傳遞給sleep,這樣告訴系統,調用線程將放棄剩餘的時間片,並迫使系統調用另一個線程。   3 getmessage是阻塞模式的,peekmessage是非阻塞模式的,

原创

對於基本數據類型,函數的參數前面加不加const都是一樣的,但對於指針和引用,參數前面加const與不加const是不同類型的參數,因此是重載函數。    如下代碼編譯器認爲是重複定義 int comp(int a) { return

原创 數據存儲大小端模式

所謂的大端模式,是指數據的低位(就是權值較小的後面那幾位)保存在內存的高地址中,而數據的高位,保存在內存的低地址中,這樣的存儲模式有點兒類似於把數據當作字符串順序處理:地址由小向大增加,而數據從高位往低位放;  所謂的小端模式,是指數據的

原创 關於c c++ .h .cpp .c

基礎:   一個.cpp對應一個obj,一個.obj就是一個編譯單元,多個編譯單元在鏈接的時候通過鏈接器鏈接,組成一個exe,就是一個程序。如果一個cpp需要另外一個cpp定義的函數,只需要在這個cpp中寫上這個函數的聲明就可以了,注意在