James Bielman <[EMAIL PROTECTED]> writes: > Frank Goenninger <[EMAIL PROTECTED]> writes: > >> I do habe C structs lile these: >> >> struct a_struct >> { >> int a; >> }; >> >> struct b_struct >> { >> int b; >> struct a_struct a; >> }; >> >> >> How would I model b_struct using defcstruct ? > > It looks like what you would think: > > (defcstruct a-struct > (a :int)) > > (defcstruct b-struct > (b :int) > (a a-struct))
I should add that another potentially confusing thing here is when you access the A slot of a B-STRUCT, you get back a pointer to it, instead of the A-STRUCT by value. For example: (foreign-slot-value b 'b-struct 'b) -> 100 ; an int (foreign-slot-value b 'b-struct 'a) -> #<pointer ...> ; a pointer Probably this DWIM-ish behavior was also a mistake, and you should use FOREIGN-SLOT-POINTER to access the structure instead (which does work now): (foreign-slot-value b 'b-struct 'a) -> error! (foreign-slot-pointer b 'b-struct 'a) -> #<pointer ...> James _______________________________________________ cffi-devel mailing list cffi-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/cffi-devel