( Ritter | 2020. 08. 02., v – 19:01 )

A mai C fordítók már jobban optimalizált kódot fordítanak mint amit 100-ból 99 assembly programozó közvetlenül megír. Egy egyszerű félda C-ben:

int main(void)
{
int i=10, j=20, k;
k = f1(i,j);
printf("\n%d", k);
return(0);
}

int f1(int x, int y)
{
int k;
k = x + y;
return(k);
}

Ennek az eredménye minden esetben 30 kiírása a képernyőre. Ezt észreveszi a C fordító, ezért végül ezt fordítja belőle:

mov esi, DWORD PTR __imp__printf
push 30
push OFFSET ??_C@_03IOBBOKCP@?6?$CFd?$AA@
call esi

Nem lesz felesleges függvényhívás, futás idejű összeadása i és j -nek, mert az eredmény mindig 30. 

Ez természetesen egy eléggé leegyszerűsített példa volt, amit mindenki észrevenne. De egy összetett programnál már sok felesleges vargabetűt nem vesz észre az emberi szem. Ezért végül az esetek 99%-ában optimálisabb kódot fordít a C fordító, mintha közvetlenül kütyüzné a feladatot valaki assemblyben.