万博1manbetxSimulink代码生成:函数调用者块中的函数存根及其返回值/参数

6次浏览(过去30天)
西蒙Ahrens
西蒙Ahrens 2021年8月10日
回答: 西蒙Ahrens2021年8月10日
在我的Sim万博1manbetxulink模型中,我有几个函数调用块。函数原型很简单
y = someFunction()
输出参数使用自定义枚举类型,并以
someEnum (1)
输出信号始终被定义为一维信号。
在从模型生成代码时,这些函数调用者总是以期望的形式生成函数存根
走读生someEnum someFunction(空白)
然而,在最近进行了大量更改之后,我刚刚注意到代码生成现在产生了形式为的函数存根
走读生void someFunction(someEnum rty_y)
对一些人(不是所有人!)函数调用者阻塞。
我已经比较了关于Function调用方块的每个参数和我能找到的相关输出信号,但我找不到受影响的参数与当前版本中正常工作的参数或以前版本中相同的块之间的任何差异。所有函数和信号都已重命名,但那些不受影响的Function Caller块也是如此。
代码生成选项也是相同的。
我试图从帮助文件中了解什么可能导致编码器使用指针参数而不是直接返回函数存根的值,但找不到任何东西。
任何可能导致代码生成器使用指针的提示都将非常感谢。

接受的答案

西蒙Ahrens
西蒙Ahrens 2021年8月10日
找到问题所在了。一些受影响的块在“配置C/ c++函数接口”对话框中将其C/ c++返回参数设置为“void”。
一些受影响的块(不幸的是,我之前检查过的两个)在这里仍然被设置为“y”,我必须将设置更改为“void”,然后再返回“y”,才能产生所需的结果。

更多答案(0)

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!