前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Tool之函数引用

Tool之函数引用

作者头像
Taishan3721
发布2019-07-10 15:33:08
5910
发布2019-07-10 15:33:08
举报
文章被收录于专栏:这里只有VxWorks

最近有童鞋遇到一个浮点函数返回异常的问题。代码简化如下

在VxWorks里运行一下

计算结果明显不对。为啥?

看看Workbench的Build Console,有个Warning:

原来是没有声明函数aaa()

把代码改一下

再跑一次

OK,it works!

有兴趣的童鞋可以把两次的bbb.o文件反汇编出来

对比一下

对应的指令确实不一样了,不过我本科那点儿汇编知识,早就不知道去哪了...

接下来,把刚刚的类型扩展一下

再看看运行结果

ccc()和ddd()的内部操作还是正常的,但返回值溢出了;而bbb()更不幸,内部处理都乱了,说明入参就已经错了。

把返回值的长度打印出来看看:

都变成4Bytes了

看来编译器在找不到原型时,都是按32bits来处理的。

把声明都加上吧:

这次都正常了

当然了,函数声明最好还是放到头文件里,然后引用头文件就可以了。

另外,对于这典型的浮点操作,我们之前提到过,创建Task时需要包含VX_FP_TASK这个选项

良好的Coding,要消灭所有Warning,杜绝一切风险!^_^

这正是:

函数引用要声明,否则返回变整型。

编译阶段有Warning,规范编码要查清。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-05-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 这里只有VxWorks 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档