主要内容

jc_0644:类型设置

规范来源

控制算法建模规范 - 使用 MATLAB®、Simulink® 和 Stateflow®

子 ID 建议

  • NA-MAAB - 无建议

  • JMAAB - a

MATLAB 版本

全部

规则

子 ID a

当通过数据对象设置数据类型时,不应使用模块或 Stateflow 数据来设置数据类型。

例外

  • 在可重用函数内部

  • Data Type Conversion 模块

  • 使用 fixdt 设置的数据类型

  • Booleandouble 类型

自定义参数

不适用

示例 - 正确

类型是在数据对象上设置的。

理由

子 ID a:

  • 当模块中设置的数据类型与数据对象中的类型设置不同时,很难确定哪个设置是正确的。这会损害可读性。

  • 当在模块中设置类型时,信号线类型改变时会影响可维护性。

例外

  • 当模块结构相同时,输入/输出数据类型之间的差异可能会产生不同的 C 源代码,使代码无法重用。对于可重用的功能,应在子系统级别指定输入/输出模块的数据类型。

  • 使用 Data Type Conversion 模块显式设置数据类型时。

  • 当数据类型为 fixdt(定点)时,必须单独设置数据类型,因为每个模块可以有不同的数据点。在这种情况下,不可以仅使用数据对象来设置数据类型。

  • 具有默认特定类型设置的模块。

    例如,输出数据类型默认设置为 boolean。通常逻辑运算的期望结果即为 boolean 类型,因而无需调整继承设置。由于预期类型已按此方式在默认设置的模块中预先配置,因此可读性和可维护性不会受到影响。

示例 - 正确

类型是通过数据对象设置的,没有通过模块来设置。

示例 - 不正确

类型同时在数据对象和模块中进行了设置。

验证

模型顾问检查:检查由数据对象设置的类型 (Simulink Check)

上次更改

R2024b

版本历史记录

在 R2020a 中推出