Как работает макрос typecheck из ядра Linux?

Файл include/linux/typecheck.hядра Linux 4.16 содержит этот код.

#define typecheck(type,x) \
({      type __dummy; \
        typeof(x) __dummy2; \
        (void)(&__dummy == &__dummy2); \
        1; \
}

, который проверяет, имеет ли xтот же тип, что и параметр type.

Но я не могу понять строку:

 (void)(&__dummy == &__dummy2);

Как помогает сравнение первого адреса обеих переменных?

13
задан Ciro Santilli 新疆改造中心法轮功六四事件 12 May 2018 в 01:22
поделиться