Microchip Technology XC8 Standard Compiler (Workstation) SW006021-1 SW006021-1 User Manual

Product codes
SW006021-1
Page of 518
Error and Warning Messages
 2012 Microchip Technology Inc.
DS52053B-page 379
(107) illegal # directive "*" 
(Preprocessor, Parser)
The compiler does not understand the # directive. It is probably a misspelling of a 
pre-device # directive, for example:
#indef DEBUG  /* oops -- that should be #undef DEBUG */
(108) #if[n][def] without an argument 
(Preprocessor)
The preprocessor directives #if, #ifdef and #ifndef must have an argument. The 
argument to #if should be an expression, while the argument to #ifdef or #ifndef 
should be a single name, for example:
#if            /* oops -- no argument to check */
  output = 10;
#else
  output = 20;
#endif
(109) #include syntax error 
(Preprocessor)
The syntax of the filename argument to #include is invalid. The argument to 
#include
 must be a valid file name, either enclosed in double quotes "" or angle 
brackets < >. Spaces should not be included, and the closing quote or bracket must 
be present. There should be nothing else on the line other than comments, for example:
#include stdio.h  /* oops -- should be: #include <stdio.h> */
(110) too many file arguments; usage: cpp [input [output]] 
(Preprocessor)
CPP
 should be invoked with at most two file arguments. Contact Microchip Technical 
Support if the preprocessor is being executed by a compiler driver.
(111) redefining preprocessor macro "*" 
(Preprocessor)
The macro specified is being redefined, to something different to the original definition. 
If you want to deliberately redefine a macro, use #undef first to remove the original 
definition, for example:
#define ONE 1
/* elsewhere: */
/* Is this correct? It will overwrite the first definition. */
#define ONE one
(112) #define syntax error 
(Preprocessor)
A macro definition has a syntax error. This could be due to a macro or formal parameter 
name that does not start with a letter or a missing closing parenthesis, ), for example:
#define FOO(a, 2b)  bar(a, 2b)  /* 2b is not to be! */
(113) unterminated string in preprocessor macro body
(Preprocessor, Assembler)
A macro definition contains a string that lacks a closing quote.
(114) illegal #undef argument 
(Preprocessor)
The argument to #undef must be a valid name. It must start with a letter, for example:
#undef 6YYY  /* this isn’t a valid symbol name */
(115) recursive preprocessor macro definition of "*" defined by "*" 
(Preprocessor)
The named macro has been defined in such a manner that expanding it causes a 
recursive expansion of itself.