para muchas tareas rápidas en las que se podría emplear una función f(x,y)
, en C simple, se usan macros. Me gustaría preguntar específicamente sobre estos casos, que se pueden resolver mediante una llamada a la función (es decir, macros utilizadas para incluir funciones, no para la expansión de código de código arbitrario).
Por lo general, las funciones C no están en línea, ya que pueden estar vinculadas desde otros archivos C. Sin embargo, las funciones C estáticas solo son visibles desde el archivo C en el que están definidas. Por lo tanto, los compiladores pueden incorporarlas. He oído que muchas macros deberían reemplazarse convirtiéndolas en funciones estáticas, porque esto produce un código más seguro.
¿Hay casos en que esta no sea una buena idea?
Nuevamente: no preguntar sobre macros de Code-Production con ## construcciones similares que no se pueden expresar como una función.
inline
de fu simplemente asegura que puede ser definida varias veces en el binario, el compilador puede determinar si se propone de hecho en línea que puede que ahorran espacio
inline
, no se trata de C ++.
inline
en C, al menos desde C99. Para obtener una descripción general rápida, consulte Wikipedia sobre funciones en línea .