Commit f1d74f83 authored by Mozul Rémy's avatar Mozul Rémy

prepare string link

parent 9d76e237
Le fichier mod_type.f90 contient Utilisation :
make
python pytest
mod_type.f90 : description du type bind(c)
type.h : header associé a mod_type.f90
ctest.pxd : equivalent d'un header pour cython
(voir si on peut faire une génération auto)
test.pyx : module p/cython implémentant la classe python
wrappant le contenu du .pxd
pytest.py : le test
...@@ -3,6 +3,7 @@ cdef extern from 'type.h': ...@@ -3,6 +3,7 @@ cdef extern from 'type.h':
ctypedef struct myctype: ctypedef struct myctype:
int i, j int i, j
double * s double * s
char * chaine
void print_type(myctype * ct) void print_type(myctype * ct)
......
...@@ -8,6 +8,7 @@ module test_type ...@@ -8,6 +8,7 @@ module test_type
type, bind(c) :: myftype type, bind(c) :: myftype
integer(c_int) :: i, j integer(c_int) :: i, j
type(c_ptr) :: s type(c_ptr) :: s
type(c_ptr) :: str
end type myftype end type myftype
contains contains
...@@ -16,12 +17,15 @@ module test_type ...@@ -16,12 +17,15 @@ module test_type
type(myftype) :: ft type(myftype) :: ft
! !
real(c_double), dimension(:,:), pointer :: tab real(c_double), dimension(:,:), pointer :: tab
character(len=256,kind=c_char), pointer :: str
call c_f_pointer(fptr=tab,cptr=ft%s,shape=(/ft%j,ft%i/)) call c_f_pointer(fptr=tab,cptr=ft%s,shape=(/ft%j,ft%i/))
call c_f_pointer(fptr=str,cptr=ft%str)
print *, ft%i print *, ft%i
print *, ft%j print *, ft%j
print *, tab print *, tab
print *, str
end subroutine end subroutine
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
typedef struct { typedef struct {
int i, j; int i, j;
double *s; double *s;
char *chaine;
} myctype; } myctype;
//void init_type(int n, int i, int j); //void init_type(int n, int i, int j);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment