使用arduino通过宏定义多维数组

时间:2015-04-03 20:43:12

标签: arduino

我想用Arduino语言通过宏定义一个多维数组。我正在尝试保存草图/ RAM空间。

我想做这样的事情:

#define MYARR {{8, 0}, {8, 1}, {8, 2}, {8, 3}, {8, 4}, {8, 5}, {8, 6}}

function_that_uses_array(MYARR);

但是我似乎无法让它工作,并且会遇到很多错误。我已经尝试了几种不同的方法来定义宏中的数组,但我肯定不确定这是可行的。

这是可能的,如果是的话,怎么样?

1 个答案:

答案 0 :(得分:0)

不是你可能期望的答案,但是你可以使用一维数组映射多维度而不是使用多维数组,并使用setter / getter函数来处理in this thread所解释的值?

如果将尺寸大小定义为全局常量来计算给定尺寸的索引值,则不需要辅助函数。索引 - 您可以直接使用1D数组。

修改(15年5月4日):

其他的事情是我怀疑数组可以使用预处理器宏初始化为:

  

所有数组都包含连续的内存位置

source

因此,数组必须是初始化变量。它可以用不同的方式初始化 - 一个使用宏中定义的数据在我对该答案的注释中的链接中描述,但多维数组也可以直接初始化:

 #define MAX_ROWS 3
 #define MAX_COLS 3
 const int a[MAX_ROWS][MAX_COLS] = { {1,2,3},
                                     {4,5,6},
                                     {7,8,9}  };