IAR在结构体数组赋值时为什么会报不是常量的错误?求指导
本帖最后由 hack3er 于 2013-3-16 23:15 编辑代码如下:typedef struct
{
void (*menu_action1)();
void (*menu_action2)();
}run_t;
void run1()
{ printf("run1()\n");}
void run2()
{ printf("run2()\n");}
void run3()
{ printf("run3()\n");}
void run4()
{ printf("run4()\n");}
const run_t M1=
{
run1,
run2,
};
const run_t M2=
{
run3,
run4,
};
const run_t menus[] = {M1,M2};
当执行const run_t menus[] = {M1,M2};
为什么IAR编译的会提示expression must have a constant value? const run_t menus[] =
{
{run1,run2},
{run3,run4},
}; 另外如果想用结构体的常量做数组,可以用:
const run_t *menus[] =
{
&M1,
&M2,
}; jetlib 发表于 2013-3-17 09:29 static/image/common/back.gif
另外如果想用结构体的常量做数组,可以用:
const run_t *menus[] =
{
就我上面的代码,在语法上有错么?
为什么在GCC上编译可以过 ?
而IAR上却过不了?
页:
[1]