1

如果我的程序中有以下声明:

logical, parameter :: verbose = .false.

会添加一堆东西,比如

if (verbose) write(*,*) "Information here"

使用“-03”编译时会影响性能吗?我希望编译器会认识到这些块总是错误的,从而完全删除它们,所以我可以随意添加调试打印。是这样吗?

我想这可能取决于编译器,但希望最常见的编译器有一个单一的答案。如果不是,gfortran 的行为是什么?

提前感谢您的帮助。

4

1 回答 1

2

遵循上述评论者的良好建议,我自己对此进行了测试。使用 gfortran,即使优化级别 -O0 似乎也可以完全删除死写块。

于 2013-07-22T09:22:43.830 回答