好的我有4096个浮点数,我有2个选项如何将它们存储到数组中:
您将使用哪个选项以及为什么?
程序中的现有数组
const float AB[4096] = {1.83839f, 2.99345f, .... };
程序启动时的循环数组
float A[64] = {9.37373f, ....};
float B[64] = {1.37373f, ....};
float AB[4096] ={0};
int i=0;
for(a=0; a < 8; a++)
for(b=0; b < 8; b++)
for(x=0; x < 8; x++)
for(z=0; z < 8; z++)
AB[i++] = A[(b*8+x)] * B[z+(8*a)];
答案 0 :(得分:2)
为了避免计算什么是基本上恒定的数据的运行时开销,以及大型初始化器的繁琐且容易出错的条目,一个简单的折衷方案是编写计算初始化器的代码,并且本身生成具有常量初始化器的代码。然后,将生成的代码构建到应用程序中。
答案 1 :(得分:0)
这取决于具体情况。但是如果你真的有一个4096元素浮点数组,那么你可能应该将数据存储在一个文件中,并只访问你需要的数据。这是因为:
sizeof(float)
是4个字节。
4 * 4096 = 16384字节= 16 KILOBYTES
那些是巨大的记忆!因此,最好将它们存储在文件中的硬盘上。但是,这又取决于你正在编写的程序。