C++技术文章
文章平均质量分 79
dav1125
这个作者很懒,什么都没留下…
展开
-
优化C代码常用的几招
在性能优化方面永远注意80-20原则,即20%的程序消耗了80%的运行时间,因而我们要改进效率,最主要是考虑改进那20%的代码。不要优化程序中开销不大的那80%,这是劳而无功的。第一招:以空间换时间计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题,我们就有了解决问题的第1招--以空间换时间。比如说字符串的赋值:方法A:通常的办法#define转载 2007-10-21 03:21:00 · 449 阅读 · 0 评论 -
在对话框中加入属性页
在对话框中加入属性页作者:黄晨量下载本文全部源代码当一个基于对话框的程序中有相当多的控件时,你一定会想到使用属性页来将这些控件分类放置。本文针对这种方法来讨论几种可能实现的方案。 方案一本方案的例子请见源代码打包文件中的Property1部分在对话框上放置一个Tab Control的控件,再在对话框上放置所需的控件(本例放置了2个按钮,试图在每个标签中显示一个)。然后利用Class W转载 2007-12-03 13:28:00 · 634 阅读 · 0 评论 -
堆和堆栈相关知识及区别
1、文章摘自:http://www.cppblog.com/oosky/archive/2006/01/21/2958.html非本人作也!因非常经典,所以收归旗下,与众人阅之!原作者不祥!堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类转载 2007-11-08 01:23:00 · 742 阅读 · 0 评论 -
Linux内核2.6.14源码分析-双向循环链表代码分析(巨详细)
文章来源:http://blog.csdn.net/zht_sir/archive/2007/05/10/1603266.aspx Linux内核源码分析-链表代码分析 分析人:余旭 分析时间:2005年11月17日星期四 11:40:10 AM 雨 温度:10-11度 编号:1-4 类别:准备工作 Email:yuxu9710108@163.com 时代背景:开始在www.lin转载 2007-11-06 12:05:00 · 758 阅读 · 0 评论 -
关于Debug和Release的讨论
1、摘自:http://blog.csdn.net/skyhsu/archive/2007/06/06/1641043.aspx关于Debug和Release之本质区别的讨论本文主要包含如下内容:1. Debug 和 Release 编译方式的本质区别2. 哪些情况下 Release 版会出错2. 怎样“调试” Release 版的程序一、Debug 和 Release 编译方转载 2007-11-04 01:03:00 · 442 阅读 · 0 评论 -
const的思考
摘自:http://www.21tx.com/dev/2003/06/27/10340.html1、什么是const? 常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。(当然,我们可以偷梁换柱进行更新:)2、为什么引入const? const 推出的初始目的,正是为了取代预编译指令,消除它的缺点,同时继承它的优点。3、cons有什么主要的转载 2007-11-04 00:47:00 · 392 阅读 · 0 评论 -
解除心头的困惑--纯虚函数
摘要:虚函数里面有一个很特殊的东东,那就是纯虚函数,关于纯虚函数的问题也是bbs上常见的话题,这里我想对此作一个小小的论述,希望能给初学者一个满意的解释。一、引入原因: 1、为了方便使用多态特性,我们常常需要在基类中定义虚拟函数。 2、在很多情况下,基类本身生成对象是不合情理的。例如,动物作为一个基类可以派生出老虎、孔雀等子类,但动物本身生成对象明显不合常理。 为了解决上述问题转载 2007-11-04 00:40:00 · 700 阅读 · 0 评论 -
C++箴言:只要可能就用const
摘自:http://www.szceo.cn/study/articleview/2005-8-10/article_view_799.htm 关于 const 的一件美妙的事情是它允许你指定一种语义上的约束:一个特定的对象不应该被修改。而编译器将执行这一约束。它允许你通知编译器和其他程序员,某个值应该保持不变。如果确实如此,你就应该明确地表示出来,因为这样一来,你就可以谋取编译器的帮转载 2007-11-04 00:51:00 · 504 阅读 · 0 评论 -
C++中虚函数
本文来源:http://blog.csdn.net/shark0001/archive/2006/10/28/1354112.aspxclass A{public:virtual void foo() { cout };class B: public A{public:virtual void foo() { cout }; 那么,在使用的时候,我们可以:A * a = new B(转载 2007-11-04 00:25:00 · 776 阅读 · 1 评论 -
内存空间的配置
void *calloc(size_t nobj, size_t size);分配足够的内存给nobj个大小为size的对象组成的数组, 并返回指向所分配区域的第一个字节的指针;若内存不够,则返回NULL. 该空间的初始化大小为0字节.char *p = (char *) calloc(100, sizeof(char));void *malloc(size_t size);分配足够的内存转载 2007-10-21 03:21:00 · 338 阅读 · 0 评论 -
sizeof解析
0.关键字:sizeof,字节对齐,类型大小前向声明: sizeof,一个其貌不扬的家伙,引无数菜鸟竟折腰. 小虾我当初也没少犯迷糊,秉着“辛苦我一个,幸福千万人”的伟大思想,我决定将其尽可能详细的总结一下。 但当我总结的时候才发现,这个问题既可以简单,又可以复杂。所以本文有的地方并不适合初学者,甚至都没有必要大作文章。但如果你想“知其然,更知其所以然”的话转载 2007-10-21 03:19:00 · 467 阅读 · 0 评论 -
深入浅出 CPropertySheet
摘自:http://www.vckbase.com/document/viewdoc/?id=427为了最大限度的发挥属性页的效用,首先让我们先从 CPropertySheet 继承一个新类,取名为 CMyPropSheet.接着便可以进行下面的各种操作: 一、隐藏属性页默认按钮 隐藏掉Apply应用按钮: propsheet.m_psh.dwFlags |= PSH_NOAPPLY转载 2007-12-05 23:20:00 · 420 阅读 · 0 评论