#define CONCAT(a,b) a##b
#define METHOD(method) \
public: \
static int CONCAT(method,wrapper)(int* ptri, char* ptrc, double* ptrd) \
{ \
return ((type *)ptri)->method(ptrc,ptrd); \
}
Вопрос 1: Является ли этот МЕТОД чем-то вроде класса или структуры?Что означает эта макрофункция?
Вопрос 2: Для
static int CONCAT(method,wrapper)(int* ptri, char* ptrc, double* ptrd)
это значит:
static int methodwrapper(int* ptri, char* ptrc, double* ptrd)
Для компьютера это означает, к чему оно расширяется. Вы должны спросить того, кто написали его, какова его семантика; мы даже не можем догадываться. (За исключением тех случаев, когда я вижу по крайней мере одну загруженную ногу на почти каждой линии.) – zwol
Это означает, что у вас, вероятно, есть код для перезаписи, удобные макросы могут показаться хорошими во время разработки, но это кошмары для обслуживания, попробуйте пройти через это в отладчике –