Programmiersprache C/C++

Präprozessor

#line

  #line zeile 
  #line zeile "dateiname"
Die #line-Direktive wird verwendet, um einem Programm Zeilennummern für Querverweise oder Fehlermeldungen zu übergeben. Wenn ein Programm aus anderen Programmen entnommene Passagen enthält, ist es oft sinnvoll, diese Passagen mit den Zeilennummern des ursprünglichen Quellprogramms zu versehen, anstatt das zusammengesetzte Programm komplett sequentiell durchzunumerieren.
Die Direktive #line legt fest, daß die folgende Quelltextzeile ursprünglich die Zeile mit der Nummer zeile der Datei dateiname war. Nachdem der Dateiname einmal registriert ist, kann bei nachfolgenden #line-Direktiven, die sich auf dieselbe Datei beziehen, auf die explizite Angabe des Arguments dateiname verzichten.

Makros werden in #line-Argumenten genauso wie in der Direktive #include erweitert.

Die Direktive #line wird hauptsächlich von Tools benutzt, die C-Quelltexte erzeugen (z.B. lex, yacc). Der "normale" Programmierer wird die Direktive selten einsetzen.

Beispiel:

  #include <stdio.h>

  int main(void)
  {
    #line 999 "fehler.c"
    fehler(x);
    fehler(y);

    return 0;
  }
Ein Übersetzungslauf (Dateiname linepra.c) liefert zum Beispiel:
  Microsoft (R) C Optimizing Compiler Version 6.00A
  Copyright (c) Microsoft Corp 1984-1990. All rights reserved.

  linepra.c
  fehler.c(999) : error C2065: 'x' : undefined
  fehler.c(1000) : error C2065: 'y' : undefined
Benutzt werden können auch die vordefinierten Makros
  __LINE__         Zeilennummer
  __FILE__         Dateiname

Zurück zum Menü
Zurück zur vorigen Seite Weiter zur nächsten Seite

P. Böhme, 03.02.1996