关于老外一段STL程序的疑问

今天我看到老外一段程序:(变量名称我做了简化)
      O(    
      A(    
      O     M      5.0
      )     
      AN    M      5.1
      AN    M      5.2
      AN    M      5.3
      AN    M      5.4
      AN    M      5.5
      AN    M      5.6
      )     
      =     M      5.7
我仔细一看,这不就是串联的关系嘛,相当于是下面的程序:
      A     M      5.0
      AN    M      5.1
      AN    M      5.2
      AN    M      5.3
      AN    M      5.4
      AN    M      5.5
      AN    M      5.6
      =     M      5.7
我用仿真器测试,确实是一样的。
但我又很好奇,老外编写STL程序的思路是怎么样的?明明是很简单的语句非搞得这么复杂,软件不会自己优化吗?有没有哪位老师有兴趣给分析一下?谢谢。

最佳答案

首先软件不会自己优化。因为软件不知道编程人的思想。有些看似无用的东西,也许有很大用处:比如某段程序被屏蔽永远都不会执行,软件自动给优化掉?实际上那是程序员为特殊情况下保留的代码,在以后的某些时候要打开屏蔽。很多大企业尤其是国外企业,程序都是有历史传承的,一段程序也许是十年前的工程师编写的;还有的是在前人的基础上增、删、修改的,后人改过的程序肯定和原创者已经有了偏差,不要用自己固有的思想去揣摩前辈的代码,我见过1993年的国外程序,其中的结构和思想不是我们现在可以习惯的,但是人家后来的新机型也是用其逐步演化传承的。再有就是程序从梯形图转换为其他语言时,逻辑表示都会变化,变成一些看似废话的语句,那是机器的习惯。

提问者对于答案的评价:
谢谢!

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc349561.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日 上午12:07
下一篇 2021年7月5日 上午12:07

相关推荐

发表回复

登录后才能评论