[Fortran] 纯文本查看 复制代码 Program void
use ISO_C_BINDING
implicit none
interface
subroutine print_a(s,a) bind(C,name='print_a_')
import
type(C_FUNPTR) , value :: s
type(C_PTR) , value :: a
end subroutine print_a
subroutine ss(a) Bind( c , Name = "ss_" )
implicit none
integer a
end subroutine ss
end interface
integer , target :: a = 256
call print_a( c_funloc(ss) , c_loc(a) )
print * , a
end program void
!************************************
! 需要传递的子程序如下:
!************************************
subroutine ss(a) Bind( c , Name = "ss_" )
implicit none
integer a
a = a + 1
print *,'a=',a
end subroutine ss
c语言代码(请把 C 语言代码的扩展名改为 .c 而不是 .cpp)
[C] 纯文本查看 复制代码 #include <stdio.h>
extern void ss_(int a); //我自己写的传递进来的ss子程序
void print_a_(void* t, int a){
// int b=(int)t;
ss_(a); //调用传递进来的子程序
// printf("ct_=%p\n",t);
printf("ca=%d\n", a);
} |