我将 GCC 4.7.2 (C99) 和 Atmel Studio 6 用于微控制器项目。
我想定义一系列一维数组,然后将它们排列成各种二维数组以用于预定义序列。
例如:
unsigned char a1[2] = { 0b00000001, 0b00000010 };
unsigned char a2[2] = { 0b00000010, 0b00000010 };
unsigned char a3[2] = { 0b00000100, 0b00000010 };
unsigned char pattern1[1][2] = { a1, a2, a3 };
但是,这会导致错误:
初始化器元素在加载时不可计算
我可以在编译后设置数组 -
unsigned char pattern1[1][2];
void setup_patterns()
{
pattern1[0] = a1;
pattern1[1] = a2;
pattern1[2] = a3;
}
但是,考虑到有多少以及将有多少模式,能够提供第一组数组的逗号分隔列表会容易得多。(此处显示的示例非常简化。)
我对 C 编程不是很有经验(我习惯于 C#)。有没有办法使用定义/命名的一维数组列表来分配二维数组的元素?(无论是在编译时还是运行时,都没有关系。)