登录
首页 PLC论坛 PLC论坛
回帖 发帖
正文

主题:想通俗的了解一下显式与隐式

点击:1785 回复:7

PLC中常说的显式转换和隐式转换,或者显式声明和隐式声明?区别在哪里,如何更简单的了解他们?
20-01-08 21:38
哪种PLC有这东西?
20-01-08 23:07
西门子博图里就有。不用管这些吧,不能隐式转换的都是显式转换,用到的时候它会提醒你。
20-01-09 07:57
同问,啥是隐式转换,啥是显式转换,没听说过的专业知识呢?有没有人大师科普一下
20-01-09 09:38
这个不仅仅是博途软件,包括VS软件等等。都会有这两个选择。隐式转换就是系统自动给你转换了,显式转换就是根据用户的要求转换,比如word转int这个不需要用户强制也可以系统自动转换。但是如果要把int转换成string,那就需要显式转换了。
有隐式转换才是更好的满足用户使用体验。如其它品牌的PLC如果要进行不同的数据类型的两个或多个数据进行计算,则必须先显式转换成统一格式才可以进行计算。但是如博途等软件,则可以不需要转换就直接进行计算(当然前提是支持隐式转换的数据类型)。就可以大大减少用户的工作量
20-01-09 11:10
一个简单例子:
   采购物品,家里地方大的,那么不考虑直接放进去了,那就是隐式,如果家里地方小的,那么就不能全部放进去,要扔掉一部分的,那么无法隐式转换,此时只能显式转换,也就是你知道会损失还继续放。
变量也是如此,一个字节变量放入一个字地址中,不会有问题,放得下,而一个字变量,让你放入字节,那么就需要显式转换,代表你已经知晓会丢失精度这个风险。
隐式转换不会提高用户体验,在编程中应该显式转换,这样可能明确转换后的类型,避免混合类型错误。
Good Luck~
20-01-09 12:00

引用 cvlsam 在 2020/1/9 12:00:09 发言【内容省略】

   晕,那博途软件开发人员还要给用户隐式转换?那 VS软件面对各种行业软件开发人员都提供了这种便捷性是不是错误?其实这是伴随着一种智能感知模式(如VS),即感知用户的输入行为而辅助减少用户的工作并随时提供纠错功能,所以能够隐式转换的就不存在混合类型错误问题等你说的问题。你这种问题只适用于不能提供隐式转换,又不能实时纠错的编程软件。如博途软件只要你的数据类型在进行计算或处理时不能隐式转换的就会自动红色提示。
20-01-09 17:31
现在讨论问题都是非黑即白的思路,你说隐式转换不能提高用户体验他就来句提供这功能干啥,C语言还提供指针不一样建议用户谨慎使用。
当采用显式转换时,用户可以明确知道数据目前的类型,因为显式转换还是隐式转换并非PLC的IEC标准定义,所以为了遵照IEC标准,其他厂商没有必要也不需要去支持这一特性,但是显式转换还有一个非常明确的优点,就是你的程序在向其他厂商转移的时候,你不需要再重复写了。
对于隐式转换,除了可以节省一点转换时间外,其他并没有什么好处,当然,好多年前对于节省时间是可以引以为傲的,现在控制器功能强了,没人在乎这个了,就像PC编程,没人在乎多用一点内存了。
楼上把博图和微软的VS相比这个例子非常好,他们之间最大的共同点就是补丁迅速,你看博图16才发布多久,UPD1已经出来了。
20-01-10 06:06

工控新闻

更多新闻资讯