+/* Return the true size of a struct with a variable-length array field. */
+#define STRETCHY_STRUCT_SIZEOF(stretchy_struct_type, \
+ stretchy_array_field, \
+ stretchy_array_length) \
+ (offsetof (stretchy_struct_type, stretchy_array_field) + \
+ (offsetof (stretchy_struct_type, stretchy_array_field[1]) - \
+ offsetof (stretchy_struct_type, stretchy_array_field[0])) * \
+ (stretchy_array_length))