These warning messages come from the pre-processing pass of the compiler. Athough the compiler and pre-processor are integrated into the same executable, it is worth distinguishing the pre-processor warning messages from those generated by the compiler proper.
bad digit 'digit' in number
When evaluating a pre-processor expression the pre-processor encountered a malformed octal, decimal, or hexadecimal number.
bad token 'token' produced by ##
A bad pre-processing token has been produced when using the token pasting
operator ##
. This error is extremely unlikely to occur in your
code.
character constant taken as not signed
Characters with ASCII codes greater than 127 are treated as unsigned numbers by the pre-processor.
end of file inside comment
The pre-processor came to the end of file whilst processing a comment. This is usually an error: comments cannot extend across source files.
multi-byte character constant undefined
Multi-byte character constants are not supported by the pre-processor when evaluating expressions.
no newline at end of file
The last character in the file is not a new line. Although this isn't an error, it may help portability of your code if you include a new line at the end of your file.
syntax error in #if/#endif
There's a general problem in the way you've used the #if
or #endif
control
unknown pre-processor control 'control'
The pre-prpocessor control #
control isn't a valid ANSI
pre-processor control. Usually this is caused by a spelling error.
undefined escape '\char' in character constant
When evaluating a pre-processor expression the pre-processor encountered an
escape sequence \
char which isn't defined by the
ANSI standard.
wide character constant undefined
Wide character constants are not supported by the pre-processor when evaluating expressions.