原创 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中寫上這個函數的聲明就可以了,注意在