Cuando compilo el código C o C++ con las optimizaciones habilitadas, d GCC alinea las funciones a un límite de 16 bytes (en IA-32). Si la función es menor que 16 bytes, CCG pastillas con un poco de bytes, que no parecen ser al azar en absoluto:Valor de relleno de función de GCC
19: c3 ret
1a: 8d b6 00 00 00 00 lea 0x0(%esi),%esi
Siempre parece ser 8d b6 00 00 00 00 ...
o 8d 74 26 00
.
¿Los bytes de relleno de función tienen algún significado?
Mi comprensión es/fue que GCC usa 0s para el relleno de alineación de funciones, pero como no puedo indicarle una fuente que probablemente no sea muy útil ... – William