Fortran Coder
标题:
Fortran逻辑运算顺序
[打印本页]
作者:
SongAngel
时间:
2019-5-25 20:57
标题:
Fortran逻辑运算顺序
对于Fortran里面的逻辑与运算和逻辑或运算,在判断条件较多的情况下,如果根据排列考前的条件已经可以判断出整体的真或假,后面的条件还是会继续进行判断,这样会不会比较浪费时间。
不知道Fortran是否可以在已经可以做出判断的前提下,跳过后续条件的判断???
作者:
vvt
时间:
2019-5-25 21:07
本帖最后由 vvt 于 2019-5-25 21:10 编辑
这个语法没有规定,由各编译器实现去决定。
某些编译器,可能开了优化会跳过,不开不会。(不一定)
所以曾经有类似这样的代码
if( funcA() .or. funcB() ) then
但是 funcA 已经返回 true 了,而 funcB 里面有错误(比如数组越界)
一些编译器开了优化可以顺利执行(跳过了 funcB),而没有开优化,则会出错(数组越界)
作者:
SongAngel
时间:
2019-5-25 21:17
是的,今天就遇到了你描述的这个问题
,再请教一下,我使用的是IVF编译器,他对这个有优化吗?
作者:
vvt
时间:
2019-5-25 21:43
你可以自己开优化
默认情况下 Debug 是无优化,Release是二级优化。
作者:
SongAngel
时间:
2019-5-25 22:23
好的,谢谢,我试下
!
欢迎光临 Fortran Coder (http://bbs.fcode.cn/)
Powered by Discuz! X3.2