我必须编写一些将 Fortran 77 与 C 混合的代码。假设我有一个带有签名的 C 函数
void foo(int ** x);
因此,如果我在 C 中调用foo,我可能会有
int x_val = 42;
int * x_ptr = &x_val;
foo(&x_ptr);
现在假设我在 Fortran 77 中有这个:
integer x
x = 42
如果我将x传递给foo,那将相当于在 C 代码中将 "&x" 传递给foo,但这不起作用。我是否需要创建x的 Cray 指针,然后将 Cray 指针传递给foo?那行得通吗?没有 Cray 指针有没有办法做到这一点?谢谢!