container_of.h 394 B

1234567891011121314
  1. #ifndef CCAN_CONTAINER_OF_H
  2. #define CCAN_CONTAINER_OF_H
  3. #include <stddef.h>
  4. #include "config.h"
  5. #include "check_type/check_type.h"
  6. #define container_of(member_ptr, containing_type, member) \
  7. ((containing_type *) \
  8. ((char *)(member_ptr) - offsetof(containing_type, member)) \
  9. - check_types_match(*(member_ptr), ((containing_type *)0)->member))
  10. #endif /* CCAN_CONTAINER_OF_H */