return --a + 1; est équivalent à
--a; return a + 1;.
return a-- + 1; est équivalent à
tmp = a + 1; --a; return tmp; ou à plus bas niveau
%d0 = a + 1; --a; rts;.
C'est la différence entre prédécrémentation et postdécrémentation.
Maintenant, le compilateur n'est pas con, si
a est local, il va optimiser ton
return --a + 1; en
return a;.
