tengo una macro que pasa el número de línea y el nombre del archivo a un controlador de errores:Comportamiento de las funciones en línea __LINE__ en
#define SYSTEM_FAILURE (error_code, comment) \
System_Failure((error_code), (comment), __LINE__, __FILE__);
cómo será el __LINE__
resolverse cuando se utiliza dentro de una función inline?
file.h:
inline int divide(int x, int y)
{
if (y == 0)
{
SYSTEM_FAILURE(ENUM_DIVIDE_BY_ZERO, "divide by zero error");
}
return x/y;
}
Will __LINE__
el número de línea en el archivo de cabecera, o el número de línea del archivo de origen, donde la función en línea se llama (compilador asumiendo realiza una "pegar" en el código fuente)?
No se puede probar, ya que el comportamiento puede diferir en los compiladores y puede no ser lo que indica el estándar. –
Downvoters: ¿Por qué el voto a favor? La pregunta surge del uso de C, funciones en línea y macros en un sistema integrado. –
@Thomas, probando esto en su propio compilador e incluyendo los resultados en su pregunta (haciéndolo así más parecido a 'mi preprocesador hace esto, ¿es estándar?') Habría (y todavía puede) neutralizar a muchos de los votos a la baja. –