У меня есть этот макрос из чьего-то кода:
#define Q_DEF_PROTOTYPE( Type, Name ) Type (*Name)
#define COPY_FP( pDest, pSrc ) (*((void**)(&(pDest)))) = ((void*)(pSrc))
#define LIB_QUERY(lib_handle, proc) dlsym(lib_handle, proc)
#define Q_DEF_PROTOTYPE( Type, Name ) \
COPY_FP( p->Name, LIB_QUERY( g_library, STRINGIZE(FUNC(Name)) ) ); \
void dummy_##Name
Не уверен, что делает void dummy _ ## Name? Благодарю.
Это заменить ##Name
со значением параметра Name в виде строки.
Q_DEF_PROTOTYPE(myType, objectName) => void dummy_objectName
Других решений пока нет …