Concernant le style de codage:
La plupart des normes de codage peu importe la langue interdiction de plusieurs instructions return à partir d'une seule fonction comme une mauvaise pratique.
(Bien que, personnellement, je dirais qu'il y a plusieurs cas où plusieurs instructions return font sens: texte/protocole de données des analyseurs, avec des fonctions étendues de gestion d'erreur, etc)
Le consensus de l'ensemble de ces industrie normes de codage est que l'expression devrait être écrit comme:
int result;
if(A > B)
{
result = A+1;
}
else
{
result = A-1;
}
return result;
Concernant l'efficacité énergétique:
L'exemple ci-dessus, et les deux exemples dans la question sont tous tout à fait équivalents en termes d'efficacité. Le code machine dans tous ces cas, pour les comparer A > B, puis la branche, soit à l'Un+1 ou A-1 calcul, puis stocker le résultat dans un registre CPU ou sur la pile.
EDIT :
Sources:
- MISRA-C:2004 la règle 14.7, qui à son tour cites...:
- La CEI 61508-3. La partie 3, tableau B. 9.
- CEI 61508-7. C. 2.9.