如果我的程序中有以下声明:
logical, parameter :: verbose = .false.
将添加一堆东西,例如
if (verbose) write(*,*) "Information here"
使用“-03”编译时对性能有影响吗? 我希望编译器能够认识到这些块总是错误的,从而完全删除它们,这样我就可以随意添加调试打印。是这样吗?
我想这可能取决于编译器,但希望最常见的编译器有一个答案。如果不是,gfortran 的行为是什么?
按照上面评论者的好建议,我自己测试了这一点。 有了 gfortran,即使优化级别 -O0 似乎也能完全删除死写块。