为什么嵌入式C ++编译器不支持异常?

戴维·肯尼迪

我当时正在为嵌入式系统编写一个库,但碰到了不容易找到的STL标准库。

但是我收到的最糟糕的消息是编译器没有异常支持。Atmel参考手册显示

为什么不支持嵌入式环境中的异常?

很简单,就不可能使用许多用C ++编写的库。C ++与异常紧密联系在一起,就像与new运算符一样!

马特·彼得森

显然,只有生产该编译器的人才能真正回答该问题。

我的最佳猜测是,异常既耗时又耗时(代码抛出时,时间只是一个真正的问题,但是展开表始终需要空间,并且很容易与整个代码的大小相同)编译后的代码,加上“相当难以实现”,对于编译器开发人员来说,它可能不是列表上的最高项目,因此尚未实现。无论将来是否会出现,显然取决于Atmel或他们转包给他们来编译器的人。

我不是Atmel C ++实现的专家,但是如果编译器支持throw我会感到非常惊讶,但是不支持try/catch-因为在尝试将加热器固定在桑拿房中时,这和巧克力螺丝刀一样有用。卡在充分的热量。

如果使用-fno-exceptions,则如果throw代码中包含任何内容,则编译器将出错STL可以用-fno-exceptions-编译,因为这就是我编译编译器代码的方式。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章