INFO: C Ignores Preprocessor Directives Inside of CommentsLast reviewed: October 3, 1997Article ID: Q72793 |
The information in this article applies to:
SUMMARYIf a preprocessor directive is contained in a comment, the Microsoft C compiler may generate a message similar to the following:
fatal error C1004: unexpected end-of-file foundThe exact error depends upon which directive is actually placed in the comment.
MORE INFORMATIONThis is the expected behavior. The message is generated because the compiler evaluates comments before preprocessor directives, thereby ignoring a preprocessor directive within a comment block. The sample code below illustrates this situation. The #endif directive is inside of a comment because the first comment is missing a closing comment delimiter (*/). The compiler generates a C1004 error when it reaches the end of the file and has not encountered an #endif directive to match the #if directive.
Sample Code
/* Compile options needed: none */ void main () { #if 0 /* comment begins but doesn't end printf ("here 0\n"); #endif /* comment */ printf ("here 2\n"); } |
Additional query words: 8.00 8.00c 9.00 9.10
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |