如何void *function(...)
从 Fortran 调用一个?
我目前正在尝试从 Fortran 调用一些 C 函数。我以前这样做过,但我只调用了我自己的函数。例如,调用:
void add(int *csum, int *ca, int *cb) { *csum = *ca + *cb; }
来自 Fortran,我使用过:
INTEGER :: fsum, fa, fb
CALL add(fsum, fa, fb)
这工作正常。现在我有几个功能大致如下:
void *create_obj(void);
void use_obj(void *obj);
void free_obj(void *obj);
甚至:
struct private_struct; /* defined somewhere else */
struct private_struct *create_p(void);
void use_p(struct private_struct *p);
void free_f(struct private_struct *p);
其中结构是私有的,即我不知道它的成员。
问题:如何将返回值导入 Fortran?我真的不需要访问它们,但我必须在它们的生命周期中以某种方式create
存储它们use
。destroy