Compartir a través de


#line (Directiva)

Directiva de preprocesador que establece el número de línea almacenado internamente del compilador y el nombre de archivo en los valores especificados.

#line lineNumber "filename"

Parámetros

Elemento Descripción
lineNumber
Número de línea que se va a establecer. Puede ser cualquier constante de entero. El reemplazo de macros se puede realizar en los tokens de preprocesamiento, siempre que el resultado se evalúe como la sintaxis correcta.
filename [optional]
Nombre de archivo que se va a establecer. El nombre de archivo puede ser cualquier combinación de caracteres y debe ir entre comillas dobles (" "). Si se omite este parámetro, el nombre de archivo anterior permanece sin cambios.

Comentarios

El compilador usa el número de línea y el nombre de archivo para hacer referencia a errores que encuentra durante la compilación. El número de línea suele referirse a la línea de entrada actual, y el nombre de archivo hace referencia al archivo de entrada actual. El número de línea se incrementa una vez que se procesa cada línea. Si se cambia el número de línea y el nombre de archivo, el compilador omite los valores anteriores y continúa el procesamiento con los nuevos valores. Normalmente, los generadores de programas usan la directiva #line para hacer referencia al archivo de código fuente original en lugar del programa generado.

El traductor utiliza el número de línea y el nombre de archivo para determinar los valores de las macros predefinidas __FILE__ y __LINE__. Estas macros se pueden utilizar para insertar mensajes de error autodescriptivos en el texto del programa. La macro __FILE__ se expande a una cadena delimitada por comillas dobles (" ") cuyo contenido es el nombre de archivo.

Ejemplos

En el ejemplo siguiente se establece el número de línea en 151 y el nombre de archivo en "copy.c".

#line 151 "copy.c"

En el ejemplo siguiente, la macro ASSERT usa las macros predefinidas __LINE__ y __FILE__ para imprimir un mensaje de error sobre el archivo de origen si la aserción especificada no es true.

#define ASSERT(cond)

if( !(cond) )\
{printf( "assertion error line %d, file(%s)\n", \
__LINE__, __FILE__ );}

Consulte también

Directivas de preprocesador (DirectX HLSL)