macros and functions

delta trinity
Mon, 03 Mar 2003 10:12:08 -0500

I think you either have a choice of having a function OR having a macro 
(unless I am mistaken).  A macro is not a function in itself.  It rather 
insert itself at every places where you invoke it in your code.  So when 
declaring a macro, no code is actually created (so you can't take a macro's 
address).  When using a macro, code is generated at every places where you 
invoke it.

Well, one way of doing what you may want is to wrap the macro in a function, 
like this:

#define Macro1(Param1, Param2) \
{                              \
   //Do some stuff             \

void Func_Macro1(mpz_t Param1, mpz_t Param2)
   Macro1(Param1, Param2)

So, in your code, you can call Func_Macro1 or simply use the Macro1 macro.


>I'm experimenting with adding some new functions to gmp and ideally I would
>like some of them to be macros , but also availible as functions if 
>(say if address is taken). What existing function (mpn if possible) has 
>property , a nice simple one please. Also I would like this to be availible
>to the library itself (internal) and external (users of the lib) , 
>under the same name

Protect your PC - get VirusScan Online