GCCAVR(AVR Studio)中多维定义警告:missing braces around initializer
详细警告为:
warning: missing braces around initializer
warning: (near initialization for 's1[0]')
二维数组定义如下:
char s1[4][16] = { 14, 4,13, 1, 2,15,11, 8, 3,10, 6,12, 5, 9, 0, 7 ,
0,15, 7, 4,14, 2,13, 1,10, 6,12,11, 9, 5, 3, 8 ,
4, 1,14, 8,13, 6, 2,11,15,12, 9, 7, 3,10, 5, 0 ,
15,12, 8, 2, 4, 9, 1, 7, 5,11, 3,14,10, 0, 6,13
};
改为:
char s1[4][16] = { {14, 4,13, 1, 2,15,11, 8, 3,10, 6,12, 5, 9, 0, 7 },
{ 0,15, 7, 4,14, 2,13, 1,10, 6,12,11, 9, 5, 3, 8 },
{ 4, 1,14, 8,13, 6, 2,11,15,12, 9, 7, 3,10, 5, 0 },
{15,12, 8, 2, 4, 9, 1, 7, 5,11, 3,14,10, 0, 6,13 }
};
因为:没有用大括号明确的区分出初始化数据的归类。在Keill、ICCAVR中没有警告,可能WINAVR对语法要求更严格吧。