Microchip Technology XC8 Standard Compiler (Workstation) SW006021-1 SW006021-1 User Manual
Product codes
SW006021-1
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:
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:
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
#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:
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:
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:
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.
recursive expansion of itself.