Hi,

offsetof() is not supported by current Cython, and I have not found any
workaround (except hardcoding offsets for a specific architecture and
compiler, but this is obviously wrong).

offsetof() would certainly be very useful, but in the meantime
offsetof(Struct, field) can be replaced with:

    <Py_ssize_t>&(<Struct*>NULL).field

It's not ANSI C, but is portable enough.

Another option (for extern or public structs only) is to abuse
renaming:

    enum:
        Struct_offsetof_field1 "offsetof(Struct, field1)"

This way a symbolic name can be given to any expression
to be literally pasted into the generated code.


Best regards,
Nikita Nemkin
_______________________________________________
cython-devel mailing list
cython-devel@python.org
http://mail.python.org/mailman/listinfo/cython-devel

Reply via email to