2012-08-10 42 views

回答

6

在Fortran 95中,我不認爲這是嚴格符合標準的方法。您需要使用供應商擴展 - 必要的功能通常可以通過名爲LOC或類似的內部來提供。

在Fortran 2003中,根據Fortran指針指向的對象的性質,可以將對象的C地址(其內存位置)轉換爲整數。

USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_LOC, C_INTPTR_T 
TYPE(thing), POINTER :: object 
INTEGER(C_INTPTR_T) :: an_integer 
!**** 
ALLOCATE(object) 
an_integer = TRANSFER(C_LOC(object), an_integer)