1 struct data { 2 int prio; 3 signed char status; 4 }; 5 6 struct base { 7 unsigned _num; 8 struct data vec[10]; 9 }; 10 ix(struct base * base,unsigned i)11static struct data *ix(struct base *base, unsigned i) 12 { 13 return &base->vec[i]; 14 } 15 16 struct heap { 17 struct base base; 18 }; 19 20 struct heap *heap; 21 increase_insn_priority(int * fld,int amount)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