Итак, вот несколько макросов, которые я создал:
#define MODULE_NAME moduleName
#define MODULE_STRUCT MODULE_NAME ## _struct
#define MODULE_FUNCTION(name) MODULE_NAME ## _ ## name
После этих определений мне бы хотелось, чтобы произошли следующие расширения:
MODULE_STRUCT --> moduleName_struct
MODULE_FUNCTION(functionName) --> moduleName_functionName
Однако, когда я добавляю операторы вставки маркера, расширение MODULE_NAME в MODULE_FUNCTION и MODULE_STRUCT больше не происходит... Кажется, что MODULE_NAME считается литеральной строкой при вставке их вместе.
Есть ли способ обойти это?