如何在Intel ifort编译器中通过源码指令禁用特定编译选项
在Intel Fortran中针对特定代码段禁用指针检查
- Intel Fortran提供了
!DEC$ CHECK编译器指令,能局部控制各类检查选项,正好满足你不用改构建系统、只在源码里调整指针检查的需求。 - 具体操作很简单:在你确认无问题、想跳过指针检查的代码块前,加上
!DEC$ CHECK POINTERS OFF;代码块结束后,再用!DEC$ CHECK POINTERS ON恢复全局的指针检查设置。 - 示例代码如下:
! 这段代码保持全局的指针检查 call safe_routine_with_pointers() !DEC$ CHECK POINTERS OFF ! 这里的代码会跳过指针检查,适合你已知无问题的场景 call no_warning_routine() !DEC$ CHECK POINTERS ON ! 回到正常的指针检查模式 call another_safe_routine()
- 注意:这个指令是Intel Fortran专属的,ifort和Intel oneAPI Fortran编译器都支持;只在完全确认安全的代码段禁用,别滥用,不然可能漏掉真正的指针错误。
内容的提问来源于stack exchange,提问作者Ray
相关产品推荐
相关产品推荐

