返回结构的问题

[复制链接]
2334|4
 楼主| shdjdq 发表于 2013-5-9 14:12 | 显示全部楼层 |阅读模式
#define s32 int
typedef struct
{
  s32 DcValue;       
  s32 AcValue;                 
  s32  AcNo;       
  s32 AcValueA;       
  s32 AcValueB;   
}Ff_TypeDef;

Ff_TypeDef TakeFftMod256(s32 * fft_in)
{
Ff_TypeDef aa1;
aa1.DcValue=(*fft_in++)+1;
aa1.AcValue=(*fft_in++)+1;
aa1.AcNo=(*fft_in++)+1;
aa1.AcValueA=(*fft_in++)+1;
aa1.AcValueB=(*fft_in++)+1;
return aa1;       
}
s32 ffi[5]={1,2,3,4,5};
int main(void)
{
    Ff_TypeDef aaa;
s32 i;
aaa=TakeFftMod256(ffi);
    printf("%d||%d||%d||%d||%d\n",aaa.DcValue, aaa.AcValue, aaa.AcNo,aaa.AcValueA,aaa.AcValueB);
for(i=0;i<5;i++)    printf("%d**",ffi[i]);
    return 0;   
}
在VC6中调试通过,但在mdk4.12中通不过,不知是什么原因?
error:  #513: a value of type "int" cannot be assigned to an entity of type "Ff_TypeDef"
难道是4.12的BUG?

jack821119 发表于 2013-5-9 14:21 | 显示全部楼层
编译过没有问题,而且你的程序最后还缺少个while(1)
 楼主| shdjdq 发表于 2013-5-9 20:34 | 显示全部楼层
上面的程序是VC6通过的。所以没的while(1)。
qiujiahongde 发表于 2013-5-10 17:41 | 显示全部楼层
Ff_TypeDef* TakeFftMod256(s32 * fft_in)
{
Ff_TypeDef *aa1;
aa1=(Ff_TypeDef *)malloc(sizeof(Ff_TypeDef ));
……
这样试试;
 楼主| shdjdq 发表于 2013-5-15 17:15 | 显示全部楼层
编译通过了,是个最低级的问题,忘了函数声明,谢谢上面二位的热心。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

1686

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部