我在 Atmel Studio 6 中使用了 ATMega32 uc。我有一些包含new操作符的代码。当我尝试使用它时,它说它没有定义,我不知道为什么。
我在谷歌上搜索了一些东西,但我还没有找到任何相关的东西。我能找到的只是定义new和delete操作符的代码片段,但我真的不想这样工作。也nullptr不见了。
还有其他解决方案吗?
在嵌入式情况下使用动态内存管理是完全可能的——你只需要小心你的做法。在这种情况下,使用malloc()andfree()可能更容易,但为了帮助兼容性,您可能需要将它们定义为newand delete。AVR Freaks 提供了有关该主题的一个很好的信息来源。
这些运算符不存在的原因很简单,因为 AVR-GCC 不完全支持 C++,只支持其中的一部分。这部分是由于嵌入式编程的性质 - 一些更高级的 C++ 功能可以快速消耗闪存和 RAM。嵌入式平台上的 C 与 C++ 争论是一个古老且经常激烈的争论,但通常归结为具体情况。这是关于该主题的另一个论坛主题。
| 归档时间: |
|
| 查看次数: |
3350 次 |
| 最近记录: |