打印

返回结构的问题

[复制链接]
1692|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 ));
……
这样试试;

使用特权

评论回复
5
shdjdq|  楼主 | 2013-5-15 17:15 | 只看该作者
编译通过了,是个最低级的问题,忘了函数声明,谢谢上面二位的热心。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

1686

帖子

3

粉丝