C错误:表达式中的braced-group仅允许在函数内部

时间:2014-08-19 09:47:41

标签: c compiler-errors

在C中,我有这样的陈述:

unsigned char const Alpha[6][2] = (unsigned char)({
     { 0x90f }, { 0x92c, 0x940 }, { 0x938, 0x940 }, 
     { 0x921, 0x940 }, { 0x908 }, { 0x90f, 0x92b }
     });

但它产生的错误为braced-group within expression allowed only inside a function

任何人都可以提出补救措施。

注意: Alpha是一个全局常量,因此它不在任何函数之内。

2 个答案:

答案 0 :(得分:0)

您不需要复合文字,而且您的值对于unsigned char而言太大,请更改为:

unsigned short int const Alpha[][2] = {
     { 0x90f }, { 0x92c, 0x940 }, { 0x938, 0x940 }, 
     { 0x921, 0x940 }, { 0x908 }, { 0x90f, 0x92b }
};

答案 1 :(得分:0)

unsigned char const Alpha[6][2] = {
    { 0x90f & 0xFF }, { 0x92c & 0xFF , 0x940 & 0xFF }, { 0x938 & 0xFF, 0x940 & 0xFF },
    { 0x921 & 0xFF, 0x940 & 0xFF }, { 0x908 & 0xFF }, { 0x90f & 0xFF, 0x92b & 0xFF }
};