typedef struct Manager Manager; struct Manager { int samples[8]; double samples_jitter } manager_send_request() { } manager_sample_spike_detection(Manager *m) { unsigned i; for (; i < __builtin_choose_expr( !__builtin_types_compatible_p(typeof(m), typeof(*m)), sizeof(m), 0); i++) m->samples_jitter = __builtin_choose_expr( !__builtin_types_compatible_p(typeof(m), typeof(*m)), sizeof(m->samples) / sizeof(m->samples)[0], 0) - 1; }