INFO: C Ignores Preprocessor Directives Inside of CommentsID: Q72793
|
If a preprocessor directive is contained in a comment, the Microsoft C compiler may generate a message similar to the following:
The exact error depends upon which directive is actually placed in the comment.fatal error C1004: unexpected end-of-file found
This 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.
/* 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
Keywords : kbcode kbCompiler kbVC100 kbVC150 kbVC151 kbVC200 kbVC210 kbVC400 kbVC500
Version : MS-DOS:6.0,6.00a,6.00ax,7.0; OS/2:6.0,6.00a; WINDOWS:1.0,1.5,1.51; WINDOWS NT:1.0,2.0,2.1,4.0,5.0
Platform : MS-DOS NT OS/2 WINDOWS
Issue type : kbinfo
Last Reviewed: July 5, 1999