#include <stdlib.h>
inline int f0(int a) {
return a*a;
}
inline int f1(int a) {
return a*a*a;
}
int main() {
int (*f)(int);
f = rand()%2 ? f0 : f1;
return f(rand());
}
Así que con gcc, el archivo asm generado es el mismo con o sin línea. ¿Es lo mismo con cualquier código con indicadores de función?¿Se pueden insertar las funciones utilizadas a través de los punteros de función?
Tenga en cuenta que la mayoría de los compiladores, incluido gcc, realmente no se preocupan por su 'en línea' cuando deciden si alinean algo. Definitivamente puede ignorarlo y me sorprendería si la presencia de 'en línea' tuviera mucha influencia en la heurística que lo decide. – delnan