今天我看到老外一段程序:(变量名称我做了简化)
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