Microchip Technology XC8 Standard Compiler (Workstation) SW006021-1 SW006021-1 사용자 설명서
제품 코드
SW006021-1
MPLAB
®
XC8 C Compiler User’s Guide
DS52053B-page 378
2012 Microchip Technology Inc.
(101) #* may not follow #else
(Preprocessor)
A #else or #elif has been used in the same conditional block as a #else. These
can only follow a #if, for example:
can only follow a #if, for example:
#ifdef FOO
result = foo;
#else
result = bar;
#elif defined(NEXT) /* the #else above terminated the #if */
result = next(0);
#endif
(102) #* must be in an #if
(Preprocessor)
The #elif, #else or #endif directive must be preceded by a matching #if line. If
there is an apparently corresponding #if line, check for things like extra #endif’s, or
improperly terminated comments, for example:
there is an apparently corresponding #if line, check for things like extra #endif’s, or
improperly terminated comments, for example:
#ifdef FOO
result = foo;
#endif
result = bar;
#elif defined(NEXT) /* the #endif above terminated the #if */
result = next(0);
#endif
(103) #error: *
(Preprocessor)
This is a programmer generated error; there is a directive causing a deliberate error.
This is normally used to check compile time defines etc. Remove the directive to
remove the error, but first check as to why the directive is there.
This is normally used to check compile time defines etc. Remove the directive to
remove the error, but first check as to why the directive is there.
(104) preprocessor #assert failure
(Preprocessor)
The argument to a preprocessor #assert directive has evaluated to zero. This is a
programmer induced error.
programmer induced error.
#assert SIZE == 4 /* size should never be 4 */
(105) no #asm before #endasm
(Preprocessor)
A #endasm operator has been encountered, but there was no previous matching
#asm
#asm
, for example:
void cleardog(void)
{
clrwdt
#endasm /* in-line assembler ends here,
only where did it begin? */
}
(106) nested #asm directives
(Preprocessor)
It is not legal to nest #asm directives. Check for a missing or misspelled #endasm
directive, for example:
directive, for example:
#asm
MOVE
r0, #0aah
#asm ; previous #asm must be closed before opening another
SLEEP
#endasm