gpt4 book ai didi

c - 定义数百个双常量的最节省内存的方法

转载 作者:太空狗 更新时间:2023-10-29 16:12:39 24 4
gpt4 key购买 nike

在嵌入式 C 程序中定义数百个 double (64 位浮点)常量的最节省内存的方法是什么?请注意此应用程序内存受限,我需要尽可能多地节省 RAM。

这是一个带有 2048B RAM 的 Atmel AVR,主频为 8MHz。 32K 闪存。

最佳答案

在很大程度上,让常量不使用内存的方法是将它们存储在一个文件中,并在需要时读取它们。

如果您不能这样做,那么常量必须构成程序的一部分,并且它们将以一种或另一种方式占用内存,要么在数据段中,要么作为指令中的立即数。

如果不需要全精度,您可以将数据减少为 float 而不是 double

一些处理器架构提供在指令中编码简单的浮点常量。如果您的目标是这样的处理器,您应该研究它的文档以了解支持哪些常量。这不太可能对一般数据有用。

如果数据具有某种模式,您可以使用它来生成运行时所需的部件。 (这包括各种形式的压缩和解压缩,这取决于数据中的模式。)显然,这取决于数据的性质,您没有包含在您的问题中。

另一种应该考虑的可能性是您的程序是否需要它使用的所有原始数据,或者是否可以提前执行部分工作以减少所需的数据。

否则,总的来说,数据就是数据,它占用它占用的空间。

关于c - 定义数百个双常量的最节省内存的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21827092/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com