题
请员额的要点之一应该牢记在心,同时设计或编码较少占成果的嵌入式系统。
我不是给编译器或平台的详细信息,因为我想要的一般信息。但是,任何具体信息基于Linux的操作系统还欢迎。
解决方案
取决于如何低你想要得到的。我目前正在编财打印机,和有没有操作系统,以及主要规则是没有动态存储器的分配。有趣的是,我仍然深信船员到代码的完全现代C++;).
实际上有一些规则,我们决定:
- 没有动态的分配
- 因此,没有STL
- 不例外处理(显而易见的原因)
其他提示
没有一个 一般性答案, ,只有那些具体语言/平台...但
小型存储的足迹...
- 不用Java,C#/单,PHP,Perl,蟒蛇或任何与垃圾收集
- 获得尽 附近的金属作为可行的, 使用C
- 做了很多的分析,看看那里的存是得到分配的,如果您使用的是动态的分配
- 确保你 防止堆碎片 通过分配合理的区块和规模的堆
- 避免 递归功能 特别是那些使用malloc().更好地分配一块并通过一个指左右。
- 使用免费的();)
- 确保你的类型不超过所需
- 打开编译器优化
会有更多。
对于真正的低足迹考虑做大会直接。
我们都知道,世界您好用C或C ++为20KB +(因为所有获取链接默认库)。在大会这个开销已经一去不复返了。正如评论指出,一方面可以减少标准库颇有几分。然而,事实是,代码密度就可以得到时编码组件比一个编译器高得多会从更高的语言产生。因此,对于码,其中每个字节事务,使用汇编
也与能力较差的处理器的设备,用汇编语言编程编程时,可能会做使程序速度不够快它是实时够你唯一的办法(例如)控制机
当面临这样的限制,最好是为预分配存储器强>为了保证系统将负载下工作。设计模式,例如“对象池”可用于共享资源的系统中。
在<强> C 强>语言使紧资源(即存储和计算周期)控制。应当重点考虑。
避免的递归强>因为它很容易被滥用,并且可能导致堆栈溢出条件。
不隶属于 StackOverflow