typedef struct num { char is_fixnum; union { long ivalue; } value; } num; num num_intdiv(num a, num b) { num ret; if (ret.is_fixnum) { ret.value.ivalue = a.value.ivalue / b.value.ivalue; } return ret; }