【发布时间】:2021-12-14 16:33:13
【问题描述】:
我有一堆多维数组,它们分配在不同源文件的本地函数中,但我想让它们全局化。我正在考虑使用extern,根据this question,我需要制作一个头文件,其中包含我的变量的声明,然后定义该变量,仅一次,在一个源文件中。
但是,我用来生成多维数组的方法在一行中声明和定义变量,如下所示:
float (*data0)[224][3] = calloc(224, sizeof *data0);
有没有一种方法可以将其拆分为声明和定义,以便我可以使用此方法,或者在头文件本身中同时执行这两种方法会更好吗?
我正在用 C 语言实现神经网络,并且我在多个地方定义了很多这样的数组。起初我不认为我以后会需要它们,而且这应该在具有内存限制的嵌入式系统中运行,所以我将这些数组全部设为本地并尽快在它们上使用free。
但事实证明,我需要它们来训练这个网络,所以我需要它们是全局的,以便它们在函数的多次迭代中保存它们的值。另外,我不知道我们将使用的系统会连接一个 64MB DRAM,所以内存限制不是什么大问题。
【问题讨论】:
标签: c multidimensional-array extern