Función en línea v. Macro en C - ¿Cuál es la sobrecarga (memoria / velocidad)?

Yo busquéDesbordamiento de pil para conocer las ventajas y desventajas de las macros con funciones similares a las funciones en línea.

Encontré la siguiente discusión:Pros y contras de diferentes funciones macro / métodos en línea en C

... pero no respondió mi pregunta principal de grabación.

s decir, ¿cuál es la sobrecarga en c de usar una función macro (con variables, posiblemente otras llamadas de función) v. Una función en línea, en términos de uso de memoria y velocidad de ejecución?

¿Hay alguna diferencia dependiente del compilador en los gastos generales? Tengo tanto icc como gcc a mi disposición.

Mi fragmento de código que estoy modularizando es:

double AttractiveTerm = pow(SigmaSquared/RadialDistanceSquared,3);
double RepulsiveTerm = AttractiveTerm * AttractiveTerm;
EnergyContribution += 
   4 * Epsilon * (RepulsiveTerm - AttractiveTerm);

Mi razón para convertirlo en una función / macro en línea es para poder soltarlo en un archivo c y luego compilar condicionalmente otras funciones / macros similares, pero ligeramente diferentes.

p.ej.

double AttractiveTerm = pow(SigmaSquared/RadialDistanceSquared,3);
double RepulsiveTerm = pow(SigmaSquared/RadialDistanceSquared,9);
EnergyContribution += 
   4 * Epsilon * (RepulsiveTerm - AttractiveTerm);

(observe la diferencia en la segunda línea ...)

Esta función es central para mi código y se llama miles de veces por paso en mi programa y mi programa realiza millones de pasos. Por lo tanto, quiero tener la MENOR sobrecarga posible, por lo tanto, por qué estoy perdiendo el tiempo preocupándome por la sobrecarga de alinear v. Transformar el código en una macro.

Basado en la discusión previa, ya me doy cuenta de otros pros / contras (independencia de tipo y errores resultantes de eso) de macros ... pero lo que más quiero saber, y actualmente no sé, es el RENDIMIENTO.

¡¡Sé que algunos de ustedes, veteranos de C, tendrán una gran idea para mí !!

Respuestas a la pregunta(9)

Su respuesta a la pregunta