原创 malloc 和free的一些認識
malloc()以及free()的機制: 這個部分我今天才有了新的認識!而且是轉折性的認識!所以,這部分可能會有更多一些認識上的錯誤!不對的地方請大家幫忙指出! 事實上,仔細看一下free()的函數原型,也許也會發現似乎很神奇
原创 C++中的迷惑
很多人抱怨C++有太多隱晦語法的問題。今天,來談兩個隱晦的語法問題。 一,關於Declarator。有時候,我們會故意製造一個便於理解的編譯錯誤。template<bool>class static_error{public:
原创 線程同步互斥
當解決多線程互斥同步的問題時,經常會有如下幾個問題:1. 在一個給定的問題中,需要多少個Mutex,多少個Semaphore?有什麼規律?2. 在對臨界區加鎖和等待信號量的順序上有什麼要求和規律?3. 什麼樣操作適合放在臨界區,什麼樣的不
原创 可變參數va_start,va_arg,va_end的用法
一)寫一個簡單的可變參數的C函數 下面我們來探討如何寫一個簡單的可變參數的C函數.寫可變參數的 C函數要在程序中用到以下這些宏: void va_start( va_list arg_ptr, prev_param ); type va_
原创 string 中英文字符
C++的中英文字符串表示(string,wstring) 在C++中字符串類的string的模板原型是basic_string template <class _Elem, class traits = char_tr
原创 windows編程1
進程通常被定義爲一個正在運行的程序的實例,它由兩個部分組成: • 一個是操作系統用來管理進程的內核對象。內核對象也是系統用來存放關於進程的統計 信息的地方。 • 另一個是地址空間,它包含所有可執行模塊或D L L模塊的代碼和數據。它還包含
原创 回調函數2
什麼是回調函數? 回調函數是應用程序提供給Windows系統DLL或其它DLL調用的函數,一般用於截獲消息、獲取系統信息或處理異步事件。應用程序把回調函數的地址指針告訴DLL,而DLL在適當的時候會調用該函數。回調函數必須遵守事先規定好
原创 函數指針與回調函數
程序員常常需要實現回調。本文將討論函數指針的基本原則並說明如何使用函數指針實現回調。注意這裏針對的是普通的函數,不包括完全依賴於不同語法和語義規則的類成員函數(類成員指針將在另文中討論)。聲明函數指針 回調函數是一個程序員不能顯式調
原创 slab alloc內存分配機制
slab的“對象重用” 到目前爲止,SUN於1991年發明的Slab Allocator是各種OS內核Memory Allocator中被認爲整體性能最好的。
原创 vc中的debug與release的區別
VC下Debug和Release區別 最近寫代碼過程中,發現 Debug 下運行正常,Release 下就會出現問題,百思不得其解,而Release 下又無法進行調試,於是只能採用printf方式逐步定位到問題所在處,才發現原來是給定的一
原创 進程間通訊方法
VC++中進程間相互通信的十一種方法 進程通常被定義爲一個正在運行的程序的實例,它由兩個部分組成: 一個是操作系統用來管理進程的內核對象。內核對象也是系統用來存放關於進程的統計信息的地方 另一個是地址空間,它包含所有的可執行模塊或
原创 stringstream的用法
stringstream通常是用來做數據轉換的。 相比c庫的轉換,它更加安全,自動和直接。 例子一:基本數據類型轉換例子 int轉string #include <string>#include <sstream>#includ
原创 static關鍵字
C/C++中的static有兩種用法:面向過程程序設計中的static和麪向對象程序設計中的static。前者應用於普通變量和函數,不涉及類的問題。 A. 面向過程程序設計中的static關鍵字 1) 靜態全局變量
原创 volatile和原子操作
所謂原子操作,就是"不可中斷的一個或一系列操作" , 在確認一個操作是原子的情況下,多線程環境裏面,我們可以避免僅僅爲保護這個操作在外圍加上性能昂貴的鎖,甚至藉助於原子操作,我們可以實現互斥鎖。 很多操作系統都爲int類型提供了+-賦值的
原创 用戶模式和內核模式
點贊 收藏 分享 文章舉報 pengzhixi 發佈了1 篇原創文章 · 獲贊 2 · 訪問量 10萬+ 私信 關注