Hyowinner的MBD技术论坛

 找回密码
 立即注册
搜索
查看: 301|回复: 1

StateFlow中这两行语句有什么区别吗

[复制链接]

79

主题

139

帖子

2051

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2051
发表于 2026-2-2 21:12:51 | 显示全部楼层 |阅读模式



在StateFlow中这两行语句有什么区别吗?为什么得到的结果不一样啊?有大佬可以给解答一下嘛?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

99

主题

247

帖子

4216

积分

管理员

校长

Rank: 9Rank: 9Rank: 9

积分
4216
QQ
发表于 2026-2-2 21:36:00 | 显示全部楼层
Stateflow中当建模动作语言为C时,存在两种赋值符号:

  • =被定义为普通赋值,遵循C语言整数数据类型提升规则,在Simulink里面被整理为定点提升规则
  • =被定义为 定点赋值,主要用于覆盖定点提升规则,蕴含了计算结果之后赋值给左值之前,进行数据类型的转换步骤


用于选择定点数运算结果数值类型的规则被称为定点提升规则,这些规则有助于计算效率性。

再具体一点:
对于=,系统运算时会根据等号右边的计算获得遵循你C语言数据类型提升规则的类型,将该类型赋值给左值,数据完整性由模型负责;
对于:=,系统运算时会强制将右值转换为左值的数据类型,可能造成数据精度的丢失等情况,数据完整性由工程师负责。

更多定点数据类型使用技巧,欢迎参考校长的定点计算课程:Simulink模型的定点化 - 网易云课堂


持续学习 未来有你
基于场景 解决问题
项目合作联系微信:Hyo_Matlab
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|MBD全栈技术学校|苏ICP备2025212294号-1|Hyowinner校长B站首页|手机版|小黑屋|Hyowinner的MBD技术论坛

GMT+8, 2026-5-7 12:03 , Processed in 0.076411 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表