"Bruno Hertz" <[EMAIL PROTECTED]> writes:

> a.c:
>  #include "a.h"
>  int x=2; /* hier kriegen wir jetzt eigentlich #define blah 5x=2; */
>  int main() {
>   ...
>  }
>

Sorry, das sollte nat�rlich heissen

 /* hier kriegen wir jetzt eigentlich #define blah 5int x=2; */

Und weil wir dabei sind hier nochmal der Text aus ISO/IEC 9899:1999


 6.10.2 Source file inclusion

   Constraints

   1 A #include directive shall identify a header or source file that
     can be processed by the implementation.

   Semantics

   2 A preprocessing directive of the form

   # include <h-char-sequence> new-line

   searches a sequence of implementation-defined places for a header
   identified uniquely by the specified sequence between the < and >
   delimiters, and causes the replacement of that directive by the
   entire contents of the header. How the places are specified or the
   header identified is implementation-defined.


Insbesondere ist das Newline auf der #include Zeile Teil der (und
jeder Pr�prozessor) Direktive, w�rde also laut Standard mit ersetzt.

Wenn ich den Standard weiter durchw�hlte w�rde ich wahrscheinlich
einen expliziten Hinweis finden, da� Implementierungen (i.e. Compiler)
zu fehlenden Newlines am Dateiende Warnungen ausgeben sollen. Im ANSI
C Standard hat's den n�mlich gegeben ...

Gruss, Bruno.

Antwort per Email an