Using define inside a #define

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I want to streamline some code.  If I use a macro like

#define CRTL1 (*(unsigned int *)0x100000)

I can use CRTL1 as if it were a register inside my code.  For example

CRTL1 = 10;

or 

printf( "The value is %d\n", CRTL1 );

and it access the value of the address space at location 0x100000.  This is pretty handy in embedded coding where lots of registers might be mapped into the address space of the processor.  Now because I am supremely lazy, what if I didn't want to have to write all the pointer stuff in the defines.  I would like to define a macro like

#define MAKE_REG( r, a) #define r  (*(unsigned int *)(a))

Obviously I can put a define on the same line but what I want is to be able to write:
MAKE_REG( CRTL2, 0x1000020 );

And then use CRTL2 just like I did CTRL1.  Is there any way of achieving my result in ANSI C?

Oliver



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux