|
是的,以前 fortran 没有 procedures pointer,所以借用这种方法来加载外部函数。
比如通过 GetProcAddress 获得一个DLL中的函数,结果是 (add) integer ,但是你不能 call integer 啊
所以 pointer( add , fileopen) 令 fileopen 这个函数的首地址,是 add 这个integer的值,这样就类似于 add 是指向 fileopen 这个 procedures 的 pointer 了
以后就可以 call fileopen 了。
(这种方法是不规范的写法,是以前没有 procedures pointer 的权宜之计)
但是,现在 fortran 2003 增加了 procedures pointer ,因此可以不用这样写了。 |
|