« Return to Thread: MPLAB Pre-processor

Re: MPLAB Pre-processor

by Gerhard Fiedler :: Rate this Message:

Reply to Author | View in Thread

Justin Richards wrote:

> I find these processor directives difficult because I cant tell what
> the processor thinks their values are.  I managed to work out how to
> pass a structure by reference because the debugger gives me feedback.
>
> Is there a directive that I can use to echo the value of the various
> defines or better yet is there documentation that describes these
> directive.  What confuses me even more is that some people put these
> in a section of their code called Macros.

In C, everything that's defined with a #define directive is called a
"macro". It may be a simple value (often used for defining constants
without spending RAM on them) or a complex construct with arguments and
multiple levels of substitution. The C preprocessor is not always
intuitive, so when you get to more complex constructs, don't be
surprised about surprises :)

AFAIK there's no way to directly display preprocessor values. Your
compiler may have a non-standard way, though, so check its manual.

If you suspect what the value is, you can use an #if variable ==
suspected_value/#error construct to confirm your suspicion. (This is
similar to what you did, so you're on the right track :)

Usually a compiler has a way to either invoke the preprocessor
separately, to stop its processing after the preprocessor run or to
output and/or preserve the file contents after the preprocessor went
over it. This can help a lot figuring out what the preprocessor does.
Again, your compiler's manual should show you how to do this.

Gerhard
--
http://www.piclist.com PIC/SX FAQ & list archive
View/change your membership options at
http://mailman.mit.edu/mailman/listinfo/piclist

 « Return to Thread: MPLAB Pre-processor