## Do not use uppercase only symbols

Device-specific headers (ie: `p18fxxx.h` files) contain variable declarations and constant definitions. This may lead to clashes with your own declarations. For example

    struct Z { int a,b ; } ;

will lead to unexpected and hard to understand error message. The reason is simple: `Z` is defined by a macro as a numeric constant so your code will be expanded by the preprocessor to something like:

    struct 2 { int a,b ; } ;

which is hard to understand for the compiler. Hopefully, this situation is simple to avoid because the headers define uppercase only symbols. Do not use this kind of symbols yourself.