[OT] #define

Eugene Wissner via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon May 22 06:18:51 PDT 2017


On Monday, 22 May 2017 at 13:11:15 UTC, Andrew Edwards wrote:
> Sorry if this is a stupid question but it eludes me. In the 
> following, what is THING? What is SOME_THING?
>
>     #ifndef THING
>     #define THING
>     #endif
>
>     #ifndef SOME_THING
>     #define SOME_THING THING *
>     #endif
>
> Is this equivalent to:
>
>     alias thing = void;
>     alias someThing = thing*;
>
> Thanks,
> Andrew

No, it isn't. THING is empty. Some SOME_THING is "*".

Emtpy macros are used for example to inline the functions:

#ifndef MY_INLINE
#define MY_INLINE
#endif

MY_INLINE void function()
{
}

So you can choose at compile time if you want inline the function 
or not. D is here more restrictive than C, I don't know a way to 
port to D.


More information about the Digitalmars-d-learn mailing list