Funciones inline y #define

Buenas!

Estaba leyendo un código fuente y me encuentro con una función inline... El problema es que nunca he entendido bien del todo el porqué de usarlas, y me pregunto si redefinir la acción que realiza la función con una macro (#define ...) no sería igual de eficiente.

Esa parte de código es este:
typedef s32 FIXED;
inline FIXED fxadd(FIXED fa, FIXED fb) { return fa + fb; }


Claro y yo digo, si no se podría haber hecho esto:
#define fxadd(fa, fb) fa + fb


Aunque igual ahora que lo miro, al ser un tipo definido por el usuario, no funcionaría de ésta última forma...

Un saludo!

EDITO: Quizá el porque de usar una función inline en este caso es para tener un mayor control de los errores lógicos que cometa el programador, ya que en el primer caso si se le pasa un tipo de dato distinto a FIXED el compilador se quejaría y en mi caso no.
0 respuestas