cc-preprocessor

Can a C macro definition refer to other macros?


What I'm trying to figure out is if something such as this (written in C):

#define FOO 15
#define BAR 23
#define MEH (FOO / BAR)

is allowed? I would want the preprocessor to replace every instance of

MEH

with

(15 / 23)

but I'm not so sure that will work. Certainly if the preprocessor only goes through the code once then I don't think it'd work out the way I'd like.

I found several similar examples but all were really too complicated for me to understand. If someone could help me out with this simple one I'd be eternally grateful!


Solution

  • Short answer yes. You can nest defines and macros like that - as many levels as you want as long as it isn't recursive.