Pregunta

¿Cuál es el significado de #line en el C idioma? ¿Dónde se utiliza?

¿Fue útil?

Solución

Se le dice al compilador que la siguiente línea en realidad procedían de. Por lo general es sólo el preprocesador de C que agrega estos, por ejemplo, cuando se incluye un archivo, se le indica al compilador (que es básicamente sólo ver un flujo de datos) que estamos mirando un archivo diferente.

Esto puede sonar extraño, pero el preprocesador simplemente inserta los archivos de cabecera donde se especifica su incluye, y el compilador funciona en todo el asunto (todos los archivos de cabecera concatenados junto con su código fuente), se puede comprobar el resultado del preprocesador etapa si se utiliza gcc con gcc -E myfile.c. Allí se dará cuenta de que añade una directiva #line siempre que incluya archivos, y también cada vez que se reduce la cantidad de texto que se alimenta al compilador (tales como grandes cantidades de comentarios puede reducirse a una sola directiva #line, saltando por delante)

También es utilizado por otros programas, como el bisonte / yacc para decirle que el problema (si hay un problema de compilación) está relacionado con su reglas-archivo en una línea específica, que el compilador de otro modo sería incapaz de hacer , como el bisonte / yacc genera c-archivos.

Otros consejos

Se denomina control de línea preprocesador Directiva .

Las expansiones de ambos __FILE__ y __LINE__ se alteran si se utiliza una directiva #line. Se hace que el compilador para ver el número de línea de la línea siguiente fuente como el número especificado.

Su uso principal es hacer que el compilador proporciona mensajes de error más significativas.

Puede encontrar más explicación y un ejemplo de uso de documentación de IBM .

Es un pragma palabra clave:

" #line le permite modificar el número de línea del compilador y (opcionalmente) la salida de nombre de archivo para los errores y advertencias. Este ejemplo muestra cómo informar de dos advertencias asociadas con los números de línea. El #line 200 Directiva obliga al número de línea a ser de 200 (aunque el valor predeterminado es # 7) y hasta la próxima directiva #line, el nombre del archivo será reportado como "especial". la directiva default #line devuelve la numeración de líneas a su numeración por defecto, el cual cuenta las líneas que se volvieron a numerar por la anterior directiva ".

Se le permite cambiar el número de línea aparente del archivo.

El único uso que se me ocurre para ello es hacer que los números de línea sana después de una larga serie de macros multi-línea.

uso es:

#line 42

Se utiliza sobre todo para suministrar los nombres de archivo y los números de línea de un archivo fuente de la que un archivo de C (ya sea encabezado o aplicación) fue creado. Teniendo en cuenta que, el compilador emitiría diagnóstico que hacen alusión al archivo de origen en lugar de en el archivo generado.

Preprocesadores también la utilizan para hacer alusión a los encabezados incluidos en un fichero preprocesado que tiene estos expandidos.

# es la cadena injing símbolo para el procesador de C y C ++

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top