Microchip Technology XC8 Standard Compiler (Workstation) SW006021-1 SW006021-1 用户手册
产品代码
SW006021-1
MPLAB
®
XC8 C Compiler User’s Guide
DS52053B-page 380
2012 Microchip Technology Inc.
(116) end of file within preprocessor macro argument from line *
(Preprocessor)
A macro argument has not been terminated. This probably means the closing paren-
thesis has been omitted from a macro invocation. The line number given is the line
where the macro argument started, for example:
thesis has been omitted from a macro invocation. The line number given is the line
where the macro argument started, for example:
#define FUNC(a, b) func(a+b)
FUNC(5, 6; /* oops -- where is the closing bracket? */
(117) misplaced constant in #if
(Preprocessor)
A constant in a #if expression should only occur in syntactically correct places. This
error is most probably caused by omission of an operator, for example:
error is most probably caused by omission of an operator, for example:
#if FOO BAR /* oops -- did you mean: #if FOO == BAR ? */
(118) stack overflow processing #if expression
(Preprocessor)
The preprocessor filled up its expression evaluation stack in a #if expression. Simplify
the expression – it probably contains too many parenthesized subexpressions.
the expression – it probably contains too many parenthesized subexpressions.
(119) invalid expression in #if line
(Preprocessor)
This is an internal compiler error. Contact Microchip Technical Support with details.
(120) operator "*" in incorrect context
(Preprocessor)
An operator has been encountered in a #if expression that is incorrectly placed (two
binary operators are not separated by a value), for example:
binary operators are not separated by a value), for example:
#if FOO * % BAR == 4 /* what is "* %" ? */
#define BIG
#endif
(121) expression stack overflow at operator "*"
(Preprocessor)
Expressions in #if lines are evaluated using a stack with a size of 128. It is possible
for very complex expressions to overflow this. Simplify the expression.
for very complex expressions to overflow this. Simplify the expression.
(122) unbalanced parenthesis at operator "*"
(Preprocessor)
The evaluation of a #if expression found mismatched parentheses. Check the expres-
sion for correct parenthesizing, for example:
sion for correct parenthesizing, for example:
#if ((A) + (B) /* oops -- a missing ), I think */
#define ADDED
#endif
(123) misplaced "?" or ":"; previous operator is "*"
(Preprocessor)
A colon operator has been encountered in a #if expression that does not match up
with a corresponding ? operator, for example:
with a corresponding ? operator, for example:
#if XXX : YYY /* did you mean: #if COND ? XXX : YYY */
(124) illegal character "*" in #if
(Preprocessor)
There is a character in a #if expression that has no business being there. Valid char-
acters are the letters, digits and those comprising the acceptable operators, for
example:
acters are the letters, digits and those comprising the acceptable operators, for
example:
#if YYY /* what are these characters doing here? */
int m;
#endif