综合技术
直播中

徐慧

8年用户 155经验值
私信 关注
[问答]

结构体实参传递到形参时变成了很大的浮点型数据和0

在keil编译器下
void CLpfQ15_Init(CLpfQ15 *p, float Fc, float Tc)
{
p->m_Tc = Tc;
p->m_Fc = Fc;
}
m_LpfQ15.Init(&m_LpfQ15, 0.02, 0.001);
m_LpfQ15为一结构体变量,Init函数指针指向 CLpfQ15_Init函数,现在的问题是 我传递的是0.02和0.001两个浮点型数据,但是我跟踪的时候发现传递到形参的时候变成了很大的浮点型数据和0,就根本不是我传递过去的值,然后我试了整形数据传递或者将数据不放在结构体内,这样传递得到的结果是正确的,请问原子哥和各位大牛是什么问题,万分感激!!

回帖(5)

康大争

2020-3-11 09:16:59
帮顶。。。。
举报

吴江

2020-3-11 09:26:29
原子哥有没有遇到这种情况?很诡异的问题,头大....
举报

李静

2020-3-11 09:45:47
typedef struct
{
   float m_Tc;
   float m_Fc; 
   void (*Init)(void *p, float Fc, float Tc);    
}CLpfQ15;
void CLpfQ15_Init(CLpfQ15 *p, float Tc, float Fc)
{
    p->m_Tc = Tc;
    p->m_Fc = Fc;
}
CLpfQ15 m_LpfQ15={0,0,CLpfQ15_Init};
int main()
{
m_LpfQ15.Init(&m_LpfQ15, 0.02, 0.001);
printf(" %f,  %fn",m_LpfQ15.m_Tc,m_LpfQ15.m_Fc);
return 0;
}
我丟在dev-C跑出來沒錯耶...
举报

何朝燕

2020-3-11 10:00:19
那丢在keil  c里面你再试下?可能是编译器问题?
举报

更多回帖

发帖
×
20
完善资料,
赚取积分