![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++学习
文章平均质量分 75
lbhli
这个作者很懒,什么都没留下…
展开
-
C预处理器和C库-学习笔记
C预处理器和C库 学习笔记 1.常量: #define 只进行替换不进行计算 #define SQRT(X) X*X SQRT(a+2); 直接替换为: a+2*a+2,和预期不同,可以通过加括号来达到预期结果 #define SQER(X) (X)*(X)原创 2011-08-04 14:07:06 · 344 阅读 · 0 评论 -
C++位运算
位运算学习总结 位运算作用 1. 掩码 掩码是某些位设为开(1),而某些位设置为关(0)的位组合 ch &= 0xff; //留下ch的最后8位 2. 打开位 有时需要打开一个值的特定位,同时其他位不变,使用“位或”来实现 ch = ch | 0x01;原创 2011-08-04 13:49:40 · 355 阅读 · 0 评论 -
常见函数实现
参考mfc下的源文件以及网上的一些代码实现。留着做个参考 strcmp比较两个字符串大小 int mystrcmp( const char * src, const char * dst ) { int ret = 0 ; while( ! (ret =原创 2011-08-12 17:02:38 · 290 阅读 · 0 评论 -
粗解“new”之来龙去脉(三)
我们暂且停止对内存分配的查找,看看这些变量是何时被初始化的,通过查找源代码我们可以看到是在__sbh_heap_init中对它赋值的。 HANDLE _crtheap;int __cdecl __sbh_heap_init (void) { if (!(__sb原创 2011-09-21 14:27:17 · 830 阅读 · 0 评论 -
粗解“new”之来龙去脉(四)
我们知道运行一个程序后会进入一个系统调用函数,在vc6里我们可以设置这个函数,windows下可能会是wWinMainCRTStartup,那会不会就是在这里调用的? 我们通过查找源代码证实了就是在这里面调用的: #ifdef _WINMAIN_ #ifdef WP原创 2011-09-21 14:35:31 · 544 阅读 · 0 评论 -
粗解“new”之来龙去脉(一)
使用C++的程序员都很熟悉使用new来分配一块内存,但是new函数具体是怎么工作的?可能很多人都没有花时间去研究,今天花了半天时间,查阅了相关的一些源代码,对它的来龙去脉有了一个初步的了解,写得不是很详细,一个是记录一下,另一个就是抛砖引玉,有兴趣的人可以深入研究。如果有不对的地原创 2011-09-21 14:11:09 · 628 阅读 · 0 评论 -
粗解“new”之来龙去脉(二)
接着往下走看看_heap_alloc_base这个函数 #define MAX_ALLOC_DATA_SIZE 0x3f8 #define BYTES_PER_PARA 16 size_t __sbh_threshold = MAX_ALL原创 2011-09-21 14:21:02 · 924 阅读 · 0 评论