温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Tool中如何实现函数引用

发布时间:2021-12-22 11:01:32 来源:亿速云 阅读:163 作者:小新 栏目:互联网科技

这篇文章主要为大家展示了“Tool中如何实现函数引用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Tool中如何实现函数引用”这篇文章吧。

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

Tool中如何实现函数引用

在VxWorks里运行一下

Tool中如何实现函数引用

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

看看Workbench的Build Console,有个Warning:

Tool中如何实现函数引用

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

把代码改一下

Tool中如何实现函数引用

再跑一次

Tool中如何实现函数引用

OK,it works!

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

Tool中如何实现函数引用

对比一下

Tool中如何实现函数引用

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

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

Tool中如何实现函数引用

再看看运行结果

Tool中如何实现函数引用

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

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

Tool中如何实现函数引用

都变成4Bytes了

Tool中如何实现函数引用

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

把声明都加上吧:

Tool中如何实现函数引用

这次都正常了

Tool中如何实现函数引用

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

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

Tool中如何实现函数引用

以上是“Tool中如何实现函数引用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI