哪位高手能帮小弟我把这个宏定义转换成函数

谁能帮我把这个宏定义转换成函数?
#define MUL(x,y) \
       ((t16 = (y)) ? \
              (x=low16(x)) ? \
                     t32 = (word32)x*t16, \
                     x = low16(t32), \
                     t16 = t32>>16, \
                     x = (x-t16)+(x<t16) \
              : \
                     (x = 1-t16) \
       : \
              (x = 1-x))

看得我好乱!

------解决方案--------------------

MUL(x, y)
{   
    if (t16 = y)
    {
        if (x = low16(x))
        {
            t32 = (word32)x * t16;
            x = low16(t32);
            t16 = t32 >> 16;
            x = (x - t16) + (x < t16);
        }
        else
        {
            x = 1 - t16;
        }
    }
    else
    {
        x = 1 - x;
    }
}