原创 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萬+ 私信 關注