Is there any way to use a prior defined macro in the concatenation using the ## operator?
I would like:
#define PREFIX MR_
#define MAKE_TITLE(NAME) PREFIX ## NAME
MAKE_TITLE(SMITH)
MR_SMITH
Rather the result is:
PREFIXSMITH
I do not want to include the prefix as an argument in the MAKE_TITLE macro as this macro may be used many times for various categories (MR, MS, etc.). Consider:
#define COUPLES\
X(SMITH, 31, 35), \
X(JONES, 41, 39), \
X(BAKER, 51, 21)
#define X(SURNAME, AGE_HUSBAND, AGE_WIFE) PREFIX ## SURNAME = AGE_HUSBAND,
#define PREFIX MR_
enum HUSBAND_AGES
{
COUPLES
};
#define X(SURNAME, AGE_HUSBAND, AGE_WIFE) PREFIX ## SURNAME = AGE_WIFE,
#define PREFIX MS_
enum WIFE_AGES
{
COUPLES
}