Re: Macro that expand differently depending on the function calling it.
- From: Ian Collins <ian-news@xxxxxxxxxxx>
- Date: Wed, 31 Oct 2007 16:05:28 +1300
Fabrice wrote:
Hi,Why not just uses another macro, or better still, functions?
Lets say I want to define a generic macro to swap bytes in a integer:
#define swapbytes(x) ...
I have several implementation of the macros, one is generic C, the
other one will be an optimized assembly version for a specific
architecture.
So I do something like that in swapbytes.h:
#ifdef __SOME_IMPLEMENTATION_SPECIFIC_MACRO__
#define swapbytes(x) \
... some implementation defined assembly crap...
#else
#define swapbytes(x) \
... some generic C code ...
#endif
This works well and I can extend this to support many different
implementation dependent optimizations: MIPS, ARM, x86,...
Now i have an additional issue. In some case, I have two functions in
the same source files that requires two different implementations of
the macro. An example of such case is when you deal with arm thumb or
mips16 instruction set. Some implementation allows you to mix both
types of code, but my swapbytes macro would needs to be different for
both of them.
--
Ian Collins.
.
- References:
- Prev by Date: Re: Hi, I want to implement a General Tree Data structure (Not Binary Tree ) which have more than 2 sub nodes?
- Next by Date: Re: how to optimize a for loop
- Previous by thread: Re: Macro that expand differently depending on the function calling it.
- Next by thread: Re: Macro that expand differently depending on the function calling it.
- Index(es):
Relevant Pages
|