1struct data { 2 int prio; 3 signed char status; 4}; 5 6struct base { 7 unsigned _num; 8 struct data vec[10]; 9}; 10 11static struct data *ix(struct base *base, unsigned i) 12{ 13 return &base->vec[i]; 14} 15 16struct heap { 17 struct base base; 18}; 19 20struct heap *heap; 21 22void increase_insn_priority (int *fld, int amount) 23{ 24 if (ix(heap ? &heap->base : 0, *fld)->status > 0) 25 ix(heap ? &heap->base : 0, *fld)->prio += amount; 26} 27