fortran - 什么是 : 'iunit' is used uninitialized in this function [-Wuninitialized]

标签 fortran gfortran dex geany

我正在使用:

  open(iunit,file=dexfile,status='old',iostat=status)
   if(status /= 0)then
     write(*,*) 'Unable to open dex file'
   endif

在 Geany 中,但出现此错误:

Warning: 'iunit' is used uninitialized in this function [-Wuninitialized]

最佳答案

如果您的编译器有此选项,您可以在函数 open 中使用 newunit 命令在打开时将标志返回到可用单元 ID:

open(newunit=iunit,file=dexfile,status='old',iostat=status)

在这种情况下,open 命令将返回一个 iunit 值作为该调用的输出,而不是输入.

否则,您可以编写一个为您执行此操作的代码片段,例如:

! Find a logical unit which is not currently in use
integer function first_available_unit() result(iunit)
   logical :: is_open
   
   do iunit=10,999 ! Skip units 1-10 as they're sometimes system reserved
      inquire(unit=iunit,opened=is_open)
      if (.not.is_open) return
   end do
end function first_available_unit

然后运行:

   iunit = first_available_unit()
   open(unit=iunit,file=dexfile,status='old',iostat=status)

关于fortran - 什么是 : 'iunit' is used uninitialized in this function [-Wuninitialized],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64826183/

相关文章:

gcc - Fortran 77 提示常见 block

fortran - 如何使两个足够大的整数(kind=4)相加并存储为整数(kind=8)?

fortran - 纯函数中的指针

iphone - iPhone 中的 Fortran 编辑器

java - 有没有办法从 .dex 文件中获取所有类的列表?

arrays - 使用数组从文件读取问题

linux - 从模块调用函数

optimization - 快速计算 3D 数组中相邻点的方法

java - 将.class文件转换为smali文件并重新打包.apk

android - 库升级后的Dex合并问题