gpt4 book ai didi

c++ - 将结构化数据类型从 Fortran 传递到 C++

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:10:20 25 4
gpt4 key购买 nike

<分区>

我在 Fortran 中有一个结构化类型,其中包含大量数据,包括指针(real*8 指针数据类型)。

我正在为某些 Fortran 例程开发 C++ API。我需要结构的内容在调用 Fortran 例程之间保持不变。

我正在考虑使用 loc 获取结构的地址并将地址传递给 C++ 端。

当从 C++ 再次调用 Fortran 例程并将地址传递回 Fortran 时,以某种方式将其类型转换为原始结构,然后将其用于计算。

我可以使用什么方法来实现这一点?

谢谢。

编辑:我的代码基于评论/建议。调用 C_LOC 时程序崩溃(如果我注释掉对 C_LOC 的调用,则程序不会崩溃)。

subroutine TEST(a,b,c,d,e,mystruct,ier) BIND(C, NAME='TEST')
use mymodule
USE, INTRINSIC :: ISO_C_BINDING

implicit none
TYPE(C_PTR) :: mystruct
TYPE(mymodule), TARGET :: origstruct
INTEGER :: a, b, c
DOUBLE PRECISION :: d(*), e(*)
INTEGER :: ier

!Do something with origstruct and other arguments

print *, 'here 1'
mystruct= C_LOC(origstruct)
print *, 'here 2'

end

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com