Quote Originariamente inviata da MySQL Visualizza il messaggio
La risposta è: nei processori odierni, cioè quelli che materialmente si usano, il valore è ritornato in un registro della CPU.
Tutto il resto (uso dello stack, inesistenza di registri etc.etc.) sono tutti aspetti teorici-accademici
L'uso dello stack o di registri diversi è un dettaglio tutt'altro che accademico... eax (o rax su AMD64) viene usato giusto se restituisci un intero o un puntatore, nel caso di valori floating point o di struct si usano altri registri, lo stack o il chiamante passa un puntatore ad un buffer (allocato come meglio crede) in cui mettere il valore restituito.