众所周知,动态内存管理是C++的一个很重要的特性。
但是,在嵌入式系统中,尤其是对稳定性要求比较高的工业应用领域,可能面临的问题是,可以用的内存很小,一旦动态内存分配出现问题,导致系统异常后,会导致很严重的后果。
基于此,在这个项目中,我将尽量避免是用动态内存分配,尤其是在堆(heap)的动态内存分配。
参考了很多资料,在more effective c++找到一点启示。
确定如下几条原则:
1. 准备在项目中不使用new,mallac之类的内存分配函数。
2. 对于大部分的对象,准备禁用堆(stack)上的对象实体化,而改在栈(heap)上的对象实体化。
3. 对于一部分需要频繁调用的对象,考虑用全局静止(static)的方式进行对象的实体化。
4. 为了兼容原有的C代码,不会放弃使用全局变量。所以要在封装性和全局变量中找到平衡点。