So here are some macros I have created:
#define MODULE_NAME moduleName #define MODULE_STRUCT MODULE_NAME ## _struct #define MODULE_FUNCTION(name) MODULE_NAME
In C the operands of the token pasting operator ## are not expanded.
##
You need a second level of indirection to get the expansion.
#define CAT(x, y) CAT_(x, y) #define CAT_(x, y) x ## y