Partilhar via


Diretiva #line

Diretiva de pré-processador que define o número de linha armazenado internamente do compilador e o nome do arquivo para os valores especificados.

#line lineNumber "filename"

Parâmetros

Item Descrição
Linenumber
Número de linha a ser definido. Isso pode ser qualquer constante de inteiro. A substituição de macro pode ser executada nos tokens de pré-processamento, desde que o resultado seja avaliado como a sintaxe correta.
filename [opcional]
Nome do arquivo a ser definido. O nome do arquivo pode ser qualquer combinação de caracteres e deve ser colocado entre aspas duplas (" "). Se esse parâmetro for omitido, o nome do arquivo anterior permanecerá inalterado.

Comentários

O compilador usa o número de linha e o nome do arquivo para se referir aos erros encontrados durante a compilação. O número de linha geralmente se refere à linha de entrada atual, e o nome de arquivo se refere ao arquivo de entrada atual. O número de linha é incrementado depois que cada linha é processada. Se você alterar o número de linha e o nome de arquivo, o compilador irá ignorar os valores anteriores e continuar o processamento com os novos valores. A diretiva #line normalmente é usada por geradores de programas para fazer com que as mensagens de erro se refiram ao arquivo de origem original em vez do programa gerado.

O conversor usa o número de linha e o nome de arquivo para determinar os valores das macros predefinidas __FILE__ e __LINE__. Você pode usar essas macros para inserir mensagens de erro autodescritivas no texto do programa. A macro __FILE__ se expande em uma cadeia de caracteres cujo conteúdo é o nome de arquivo entre aspas duplas (" ").

Exemplos

O exemplo a seguir define o número de linha como 151 e o nome do arquivo como "copy.c".

#line 151 "copy.c"

No exemplo a seguir, a macro ASSERT usa as macros predefinidas __LINE__ e __FILE__ para imprimir uma mensagem de erro sobre o arquivo de origem se a declaração especificada não for verdadeira.

#define ASSERT(cond)

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

Confira também

Diretivas de pré-processador (DirectX HLSL)