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>
}
Esiste un modo per inline esplicitamente una funzione Un in una funzione B mentre esplicitamente non inlining la stessa funzione A in una funzione C? O sono completamente in balia del mio compilatore?Posso inserire una funzione parzialmente/selettivamente in linea?
È possibile inibire l'inlining inserendo una funzione in un'unità di compilazione separata. –
@JensGustedt Puoi fare un esempio? Sto avendo qualche difficoltà a indovinare quale tipo di schema hai in mente. – Will
Se non si desidera che una funzione sia in linea, posizionare la definizione in un file .c separato e compilarlo separatamente. –