有高人能帮忙查出原因吗
{
UINT16 Id;
UINT16 wide;
}A_STRUCT;
typedef struct
{
UINT16 Id;
UINT16 length;
}B_STRUCT;
static const A_STRUCT group1[] =
{
{ 2, 2},
。。。
}
static const B_STRUCT group2[] =
{
{ 4, 3},
。。。
}
void loadA(uint16 index,A_STRUCT * aa)
{
aa->id = group1[index].id;
aa->wide = group1[index].wide;
}
void loadB(uint16 index,B_STRUCT * bb)
{
bb->id = group2[index].id;
bb->length= group2[index].length;
}
void main1(void)
{
A_STRUCT mm;
loadA(0,&mm);
}
void main2(void)
{
A_STRUCT mm;
B_STRUCT nn;
loadA(0,&mm);
loadB(0,&nn);
}
在编译main1的时候mm.id = 2,mm.wide = 2
但是在编译main2的时候mm.id = 65535,mm.wide = 65535,nn.id = 65535,nn.length=65535.
请问这是怎么回事? 随便单独调用哪个函数的时候都没有问题,但是只要连续调两个函数的时候就出问题了,反复测试都是这样,有高人能帮忙查出原因吗?

