#define typecheck(type,x) \
({ type __dummy; \
typeof(x) __dummy2; \
(void)(&__dummy == &__dummy2); \
1; \
}
файл typecheck.h содержит эти коды. я знаю этот код проверяет, является ли x тот же тип, что и параметр type. но я не могу понять коды о
(void)(&__dummy == &__dummy2);
почему этот способ может решить это? первый адрес двух переменных может иметь смысл? спасибо за Ваш ответ. или скажите мне, что я должен изучить некоторые моменты.