摘要: 发布之前先申明两点: 1 所有资料来自网络(主要是CSDN),本人只是收集和转发。 2 所有问题解答(尤其是代码)只是参考,不保证正确。先发基本问题,再发编程问题..........想成为嵌入式程序员应知道的0x10个基本问题:预处理器(Preprocessor)1 . 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEA... 阅读全文
posted @ 2009-08-24 17:14 另一条地平线 阅读(489) 评论(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) 编辑
摘要: C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。 关于虚函数的使用方... 阅读全文
posted @ 2009-08-24 12:23 另一条地平线 阅读(7011) 评论(1) 推荐(2) 编辑