发布时间:2013-01-11 14:14:15
在C和C++语言开发中,指针、内存一直是学习的重点。因为C语言作为一种偏底层的中低级语言,提供了大量的内存直接操作的方法,这一方面使程序的灵活度最大化,同时也为bug埋下很多隐患。 因此,无论如何,我们都要对内存有一个清晰的理解。 一、对内的分配 32位操作系统支持4GB内存的连续访问,但通常把内存分为两个2GB的空间,每个进程在运行时最大可以使用2GB的私有内存(0x00000000—0x7FFFFFFF)。即理论上支持如下的大数组:char szBuffer[2*1024*1024*1024]; 当然,由于在实际运行时,程序还有代码段、临时变量段、动态内存申请等,实际上是不可能用到......【阅读全文】
发布时间:2013-01-08 22:27:07
第一部分:宏为什么要使用宏呢?因为函数的调用必须要将程序执行的顺序转移到函数所存放在内存中的某个地址,将函数的程序内容执行完后,再返回到转去执行该函数前的地方。这种转移操作要求在转去执行前要保存现场并记忆执行的地址,转回后要恢复现场,并按原来保存地址继续执行。因此,函数调用要有一定的时间和空间方面的开销,于是将影响其效率。而宏只是在预处理的地方把代码展开,不需要额外的空间和时间方面的开销,所以调用一个宏比调用一个函数更有效率。但是宏也有很多的不尽人意的地方。1、宏不能访问对象的私有成员。2、宏的定义很容易产生二意性。我们举个例子:#define square(x) (x*x)我们用一个数字去调......【阅读全文】
发布时间:2013-01-05 16:23:17
“我周围一群无能之辈,因为我不擅长拍马,所以不得提升,他们迫害我!“ “我的部分经理把本来应该属于我的功劳都给抢了,你说说有这样的人吗?“ “公司让我完成我根本无法完成的工作,头天加班到12点第2天晚点到公司还要扣我的钱,太没人性了,他们怎么能这样对我呢?” 我经常能听到类似的报怨,而且我必须承认其中有很多是事实,但今天我要说的是“不要像受害者一样工作!” 受害者是怎样工作的? 一般情况下,受害者会这么想: 发生什么问题之后,会认为全都是“别人“的错,我是无辜的受害者,我是被迫害的对象; ü 项目进展延后,是因为部门里太多只看不干的家伙......【阅读全文】