void run_hot(void) {
// I am called very often!
serve();
// <more code here>
}
void run_cold(void) {
// I am called only occasionally!
serve();
// <more code here>
}
???inline??? void serve(void) {
// I only want to be called inline from hot functions!
// <more code here>
}
¿Hay alguna manera de forma explícita una función inline Un en una función B, mientras que explícitamente no inlining la misma función A en una función C ? ¿O estoy completamente a merced de mi compilador?¿Puedo alinear una función parcial/selectivamente?
Puede inhibir la alineación poniendo una función en una unidad de compilación separada. –
@JensGustedt ¿Puedes dar un ejemplo? Tengo algunas dificultades para adivinar qué tipo de plan tienes en mente. – Will
Si no desea que una función esté en línea, coloque la definición en un archivo .c separado y compílela por separado. –