Начало каждого элемента совпадает с адресом самого объединения.
поэтому отдельные сравнения в выражении, о котором вы спрашиваете, являются истинными, но выражение в целом ложно, если объединение не находится по адресу 0x0001.
Удаленный текст применяется к следующим сравнениям :
&u.l == &u.i == &u.s == &u.c[0]
В пересмотренной версии сравниваются различные типы указателей - указатели следует приводить к пустым указателям.
Меня попросили процитировать стандарт или указать раздел стандарта.
C99 - раздел 6.7.2.1 Спецификация структуры и объединения (параграф 14):
Указатель на объект объединения, соответствующим образом преобразованный, указывает на каждого из его элементов (или, если элемент является битовым полем, затем на модуль, в котором он находится), и наоборот.