which has more precedence ++a or a++;

like in example
for a=3;
b=a++ * ++a + ++a;

turbo c gives ans b=30;
visual studio gives ans b=30;

but code blocks gives ans b=21

why so different?

according to me:
for 1st ++a, a=4 then for 2nd ++a, a=5 but now for all a in equation since all a has same memory location(obviously) so the the value 5 is taken for all a, so the equation is  5*5+5 and so the ans =30?

then after the equation 5 is incremented to 6 by a++;

so by this execution ++a has more precedence than a++?
pretty confused bcoz books only say 
++, -- has more precedence than other operators like uniary minus(-), *, /, %, +, -. They don't specify whether its pre or post increment!