....
Si ésto es como dices. Entonces depende del tipo de compilador.
Por supuesto, además del tipo de compilador, del nivel de optimización seleccionado.
Por ejemplo, en un código como éste:
char testeo(void) {
char t ;
char x=5 ;
char y ;
y=2*5+1 ;
t=x ;
x=y*y+4 ;
y=t ;
return x;
}
void main(void){
testeo() ;
while(1);
} Ahí CCS solo te toca la línea con
y=2*5+1 ; , donde optimiza asignando directamente 11 a y.
Pero como se puede ver, hay mucho código inútil, asignaciones que se pierden por ser variables locales y un valor de retorno no se usa.
Eso
compilado con gcc para AVR te elimina casi todo (activando las optimizaciones por supuesto). En la función elimina todo y devuelve 125 y en main ni siquiera llama la función.
Este es nada mas un ejemplo, porque la utilidad real de reemplazarte una operación es que se vea de donde sale el número y el cálculo te lo haga el compilador.