C++
bao_qibiao
这个作者很懒,什么都没留下…
展开
-
临界区,互斥量,信号量,事件的区别
最早的一篇原文:http://hi.baidu.com/cnrjm/blog/item/5d217e54ff863550564e00b9.html 四种进程或线程同步互斥的控制方法1、临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。 2、互斥量:为协调共同对一个共享资源的单独访问而设计的。 3、信号量:为控制一个具有有限数量用户转载 2009-09-03 17:00:00 · 60854 阅读 · 4 评论 -
函数对象
第一篇: Bjarne:什么是函数对象? http://dev.yesky.com/399/2147399.shtml 顾名思义,就是在某种方式上表现得象一个函数的对象。典型地,它是指一个类的实例,这个类定义了应用操作符operator()。 函数对象是比函数更加通用的概念,因为函数对象可以定义跨越多次调用的可持久的部分(类似静态局部变量),同时又能够从对象转载 2009-09-03 17:12:00 · 1856 阅读 · 4 评论 -
C++ PASCAL关键字
VC里面:PASCAL==CALLBACK==WINAPI==__stdcall _stdcall是Pascal程序的缺省调用方式,通常用于Win32 Api中,函数采用从右到左的压栈方式,自己在退出时清空堆栈。VC将函数编译后会在函数名前面加上下划线前缀,在函数名后加上"@"和参数的字节数。 _cdecl是C和C++程序的缺省调用方式。每一个调用它的函数都包含清空堆转载 2009-07-06 23:16:00 · 2396 阅读 · 0 评论 -
C++应用程序性能优化读书笔记
粗浅的看了下,有点虎头蛇尾。暂且记下。 第一篇 C++程序优化基础第1章 C++对象模型1.1 基本概念1.1.1 程序使用内存区 一个程序占用的内存区一般分为5种:全局/静态数据区、常量区、代码区、栈、堆。 例子代码: #include #include int nGlobal = 100;原创 2009-07-03 20:00:00 · 3086 阅读 · 0 评论 -
#include和前置声明
1. 当不需要调用类的实现时,包括构造函数,拷贝构造函数,赋值操作,成员变量,甚至是地址操作时,就不用#include,只要前置声明就可以了。2. 当要用到类的上面那些“方法”时,就要#include。 详细请阅读原文:http://blog.csdn.net/rogeryi/archive/2006/12/12/1439转载 2009-07-06 18:14:00 · 2240 阅读 · 0 评论 -
_BLOCK_TYPE_VALID(pHead->nBlockUse),_CrtIsValidHeapPointer(pUserData),动态链接库内存分配
环境描述:vc6.0,工程和动态链接库都使用了stlport,在动态链接库外定义了一个空的string变量,以引用的形式传入动态链接库,在动态链接库内给这个string变量赋值(这个字符串要比较长),出错。 问题分析:在动态链接库外string变量定义时分配了内存,因为这个值为空所以分配的空间较小,在动态链接库内要被赋一个较大的值,所以要给string重新分配内存,因为动态链接库内外分配内原创 2009-10-20 16:52:00 · 2714 阅读 · 0 评论