Имеет ли доступ к членам объединения через указатель, как в приведенном ниже примере, поведение undefined на C99? Намерение кажется достаточно ясным, но я знаю, что существуют некоторые ограничения в отношении псевдонимов и союзов.
union { int i; char c; } u;
int *ip = &u.i;
char *ic = &u.c;
*ip = 0;
*ic = 'a';
printf("%c\n", u.c);