Область & ldquo; использование модуля & rdquo; и связанная ошибка связывания [дубликат]

Просто хотел добавить некоторые ресурсы для Functional.js:

Лекция / конференция, объясняющая некоторые приложения http://www.youtube.com/watch?v=HAcN3JyQoyY

Обновлена ​​библиотека Functional.js: https://github.com/loop-recur/FunctionalJS Некоторые приятные помощники (извините, новый здесь, без репутации: p): / loop-recur / PreludeJS

Я недавно использовал эту библиотеку, чтобы уменьшить повторение в библиотеке помощников js IRC-клиентов. Это замечательный материал - действительно помогает очистить и упростить код.

Кроме того, если производительность становится проблемой (но эта библиотека довольно легкая), ее можно просто переписать с помощью встроенной функции.

3
задан astay13 12 December 2012 в 18:40
поделиться

1 ответ

Он не входит в подпрограмму sub, поскольку sub не может вызывать подпрограммы или использовать переменные из mod, потому что sub не является частью программы main.

Рассмотрим это:

program main

  external sub

  call sub
end program main

subroutine sub
  use mod
  ! code here calls subroutines in mod
end subroutine sub

Здесь вы можете использовать переменные и mod, потому что sub явно использует mod.

Другой пример, где sub является внутренней процедурой main:

program main
  use mod

  call sub

  contains

    subroutine sub
      ! code here calls subroutines in mod
    end subroutine sub

end program main

Также в этом случае вы можете использовать вещи из mod в sub, потому что все из main находится в области видимости в sub.

Наконец, в этом случае mod не используется по объему, он похож на исходный случай.

program main
  use mod
  use mod2

  call sub
end program main

module mod2

  contains

    subroutine sub

      ! code here calls subroutines in mod
    end subroutine sub

end module mod2

Другая проблема - это неопределение переменных модуля, когда они выходят за рамки. Fortran 2008 решил это, сделав все модульные переменные неявно save.

4
ответ дан Vladimir F 31 August 2018 в 22:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: