Fortran Coder

查看: 8144|回复: 4
打印 上一主题 下一主题

[混编] 各位大拿,如何给FORTRAN变量指定地址

[复制链接]

1963

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1357 元
贡献
574 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

楼主
发表于 2017-12-13 09:29:35 | 显示全部楼层
内存里都是二进制的,但一般我们输出和查看时,用二进制就很不方便。

对于内存地址,输出通常用十六进制。
对于数值类型,输出通常用十进制(方便人类理解)

不管你用几进制,内存里都是一样的,都是二进制转换来的。

[Fortran] 纯文本查看 复制代码
subroutine F_TEST1
  use , intrinsic :: ISO_C_Binding !//使用标准C接口模块
  implicit none
  integer :: x=5,y=5,i=0
  real*4 ::z
  integer*4 , pointer :: F_ogd   !// fortran 指针
  !//pointer(F_ogd_pointer,F_ogd) 这句删掉,是IVF的扩展语法

  INTERFACE
    type(C_PTR) FUNCTION GETVAR(VarName) BIND(C,NAME="getvar_fun") !//用 c_ptr 返回 C 指针
      USE,INTRINSIC :: ISO_C_BINDING
      CHARACTER(KIND=C_CHAR),DIMENSION(*)::VarName
    END FUNCTION GETVAR
  END INTERFACE

  call c_f_pointer( GETVAR("testvar") , F_ogd ) !// 用 c_f_pointer 转换 fortran 指针
  WRITE (*,*) F_ogd
end
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-6 19:06

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表