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