作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
您认为在桌面环境(Windows、Linux 等)上工作的程序员与在嵌入式系统上工作的程序员在思维方式上有什么区别?
我能想到的一个简单的例子是,在嵌入式环境中,我总是检查malloc是否不为NULL。我见过的大多数代码,目标桌面肯定不会勤于检查 malloc 返回值。
还有其他心态差异的例子吗?
最佳答案
有趣的是,您在示例中特别提到了 malloc() 。
在我工作过的每个硬实时、深度嵌入式系统中,内存分配都是专门管理的(通常不是堆,而是固定内存池或类似的东西)......而且,只要有可能,所有内存分配都会被专门管理。内存分配是在初始化期间预先完成的。这比大多数人想象的要容易得多。
malloc() 容易产生碎片,具有不确定性,并且不区分内存类型。使用内存池,您可以拥有位于/从超快速 SRAM、快速 DRAM、电池供电 RAM(我见过)等中提取的池...
还有一百个其他问题(回答您原来的问题),但内存分配是一个大问题。
另外:
关于embedded - 工作站和嵌入式程序员的心态差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/540025/
大家好,我是码农先森。 古话说的 "三十而立",正是担重之时,却大部分人在职场中都处于不上不下的尴尬境地。已经没有刚毕业时那股子冲劲,被生活和工作磨平了棱角。 在技术思想方面,
我是一名优秀的程序员,十分优秀!