【问题标题】:variables inside local functions in c s-functionc s-function中局部函数内部的变量
【发布时间】:2017-06-17 00:49:18
【问题描述】:

我正在尝试在 matlab simulink 中创建一个 s-function 块。这是 mdlOutput 函数。当我在里面定义局部变量时它给了我一个错误

//////


static void mdlOutputs(SimStruct *S, int_T tid)
{
real_T           *y    = ssGetOutputPortRealSignal(S,0);// no error
real_T           *x    = ssGetContStates(S);//no error
UNUSED_ARG(tid);
real_T           *a;// error:missing ';' before 'type'
real_T           *b=5.0//error: illegal use of this type as an expression
}

不仅仅是real_T,我不能在函数中定义任何类型的局部变量,除了已经在模板中定义的y和x。在顶部使用静态变量工作正常。普通变量可能有什么问题?

【问题讨论】:

    标签: c matlab


    【解决方案1】:

    我明白了。我必须在 UNUSED_ARG(tid) 命令之前定义变量

    【讨论】:

    • 原因是旧的 C 标准不允许在语句之间放置声明,UNUSED_ARG 所做的是插入一个在发布版本中基本上什么都不做的语句。该标准的更高版本放宽了该规则,但您似乎使用的是不支持该规则的旧编译器。
    猜你喜欢
    • 2022-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多