随笔分类 - [C/C++]
摘要:zlib库输出此log,此log不代表压缩出现错误,没有什么危害,而且zlib非常稳定,完全可以屏蔽log输出 zlib v1.3.8在zutil.h中添加如下: 参考: https://bugzilla.mozilla.org/show_bug.cgi?id=431950
阅读全文
摘要:Rule of Three The rule of three (also known as the Law of The Big Three or The Big Three) is a rule of thumb in C++ (prior to C++11) that claims that
阅读全文
摘要:使用过OC的都知道,OC的引用计数机制用起来还比较方便。于是就仿照OC的形式搞了个C++引用计数。 支持多重自动释放池,每次autorelease都会放到栈顶的自动释放池中。 自动释放池也可以像变量一样有生命周期,在退出block时自动销毁池,并且对池中每个对象调用release. 使用大概如下:
阅读全文
摘要:线程池就是,预先创建一定数量的线程,然后当需要异步任务时,只要把任务放入队列中,线程池自动在队列中取任务,每执行完一个任务就自动取下一个任务 本文提供的是一个简单的线程池,所以并不提供线程的自动增减的功能,以比较简单的代码来理解其原理 代码只有一个文件,算上注释才勉强200行,由于代码较长就不全部贴
阅读全文
摘要:有些情形会需要申请大量的固定尺寸的内存块,若一个个都用malloc申请效率很低,这种情况非常适合使用内存池解决。 下面就是一个固定内存块尺寸的内存池的完整源码。注:其中的内存申请不是使用的malloc,而是自己定义的torch::HeapMalloc,简单修改下即可。 代码详情请见Github【点击
阅读全文
摘要:侧移与乘法a = a * 4; ==> a = a b = b >> 2;引申1:a = a * 9; ==> a = (a a = (a << 3) - a; // a = 2^3 * a - a;引申2:十六进制数左移一位,就是乘以16(相当于移4bit)十进制数左移一位,就是乘以10X进制...
阅读全文
摘要:#include #include // 用于统计内存的申请和释放次数匹配static int _g = 0;void * _pbcM_malloc(size_t sz) { ++ _g; return malloc(sz);}void _pbcM_free(void *p) { ...
阅读全文
摘要:一块内存不同的访问方式 将变量拆成字节访问 判断CPU大小端问题 Union的内存占用 首先内存占用肯定是要大于最大的一项,其次因为内存对齐的缘故 使用注意 Union是C语言的东西,当然C++中也会有了,但是Union在C++中有些需要注意的地方。 由于union里面的东西共享内存,所以不能定义静
阅读全文

浙公网安备 33010602011771号