Скажем, у меня есть функция C void foo(int* val)
, для которой я написал следующую привязку Fortran C (надеюсь, соответствующую стандарту F2008):
use, intrinsic :: iso_c_binding
...
subroutine foo(val) bind(c)
integer(kind=c_int), intent(inout) :: val
end subroutine
Реализация функции C void foo(int* val)
рассматривает аргумент val
как необязательный, проверяя указатель на NULL
. Мой вопрос: как я могу настроить и/или использовать привязку Fortran C subroutine foo(val)
так, чтобы она поддерживала val
как необязательную, то есть так, что на самом деле нулевой указатель передается функции C?
optional
с компилятором, поддерживающим эту функцию Fortran 2018. - person francescalus   schedule 29.07.2019subroutine foo(val)
сval
какoptional
и использую его какcall foo()
, он действительно вызовет функцию C сfoo(0)
? Есть ли способ заставить его работать с Fortran 2008? - person Michael Schlottke-Lakemper   schedule 30.07.2019