摘要: 伟大的Bill Gates 曾经失言:  640K ought to be enough for everybody — Bill Gates 1981   程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。本文的内容比一般教科书的要深入得多,读者需细心阅读,做到真正地通晓内存管理。  1、内存分配方式  内存分配... 阅读全文
posted @ 2009-09-09 12:28 另一条地平线 阅读(651) 评论(1) 推荐(2) 编辑
摘要: 1. 三层架构介绍1.1关于架构架构这个词从它的出现后,就有许许多多的程序员、架构师们激烈地讨论着它的发展,但是架构一词的出现,却是随着三层架构的出现才出现的。当然,目前应用三层架构开发也正是业界最关注的主题。那么这里我们来看看单层、双层、三层甚至多层架构到底是怎么一回事。单层结构是80年代以来小型应用的结构,在那个结构化编程充斥的时代,还没有出现架构的概念,典型的是基于Dbase、Foxbase... 阅读全文
posted @ 2009-09-02 13:50 另一条地平线 阅读(632) 评论(2) 推荐(0) 编辑
摘要: C++的运算符优先级列表The operators at the top of this list are evaluated first.PrecedenceOperatorDescriptionExampleAssociativity1::Scoping operatorClass::age = 2;none2()[]->.++--Grouping operatorArray acces... 阅读全文
posted @ 2009-09-02 12:45 另一条地平线 阅读(276) 评论(0) 推荐(0) 编辑
摘要: (转)C++中extern “C”含义深层探索1.引言  C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量... 阅读全文
posted @ 2009-08-27 00:15 另一条地平线 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 1.引言   本文的写作目的并不在于提供C/C++程序员求职面试指导,而旨在从技术上分析面试题的内涵。文中的大多数面试题来自各大论坛,部分试题解答也参考了网友的意见。  许多面试题看似简单,却需要深厚的基本功才能给出完美的解答。企业要求面试者写一个最简单的strcpy函数都可看出面试者在技术上究竟达到了怎样的程度,我们能真正写好一个strcpy函数吗?我们都觉得自己能,可是我们写出的strcpy很... 阅读全文
posted @ 2009-08-26 16:42 另一条地平线 阅读(917) 评论(4) 推荐(0) 编辑
摘要: C++中对象的复制就如同“克隆”,用一个已有的对象快速地复制出多个完全相同的对象。一般而言,以下三种情况都会使用到对象的复制: (1)建立一个新对象,并用另一个同类的已有对象对新对象进行初始化,例如:class Rect{private: int width; int height;};Rect rect1;Rect rect2(rect1); // 使用rect1初始化... 阅读全文
posted @ 2009-08-25 22:46 另一条地平线 阅读(401) 评论(0) 推荐(0) 编辑
摘要: 发布之前先申明两点: 1 所有资料来自网络(主要是CSDN),本人只是收集和转发。 2 所有问题解答(尤其是代码)只是参考,不保证正确。先发基本问题,再发编程问题..........想成为嵌入式程序员应知道的0x10个基本问题:预处理器(Preprocessor)1 . 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEA... 阅读全文
posted @ 2009-08-24 17:14 另一条地平线 阅读(488) 评论(0) 推荐(0) 编辑
摘要: 在Part 1但中,我们简单介绍了堆栈的功能以及值类型、引用类型在堆栈中的存储位置的问题,也简单介绍了指针是虾米。让我们沿着革命的步伐继续前进!   Parameters, the Big Picture.   我们的代码执行的时候,底层到底有哪些内幕交易在发生呢?当我们调用一个方法时:  栈顶分配控件用来存储执行我们的method所包含的信息,这部分空间叫做栈框(stack frame,详情见地... 阅读全文
posted @ 2009-08-24 13:46 另一条地平线 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 在.NET中或许我们不用担心内存管理以及垃圾回收器(Garbage Collection GC)的问题,但是我们还是应该了解这些东东以便在必要的时候优化我们程序的性能。而且,如果对内存管理如何工作有所了解,那将有助于解释我们每个程序里的每个变量的运行规律。这篇文章主要内容是解释堆(Heap)和栈(Stack),各种变量以及这些变量到底是如何工作的。   .Net Framework 在执行代码时,... 阅读全文
posted @ 2009-08-24 13:22 另一条地平线 阅读(324) 评论(0) 推荐(0) 编辑
摘要: 五大内存分区在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。自由... 阅读全文
posted @ 2009-08-24 12:44 另一条地平线 阅读(711) 评论(1) 推荐(1) 编辑