Предположим, анонимные объединения не должны были быть объявлены статическими, и компилятор встречает эти два модуля перевода (после предварительной обработки):
Файл1:
union {
int a;
char b;
};
// Further contents referring to a and b
Файл2:
union {
int a;
char b;
};
// Further (different) contents referring to a and b
Являются ли эти два союза одним и тем же объектом, или они должны быть разными объектами?
Я думаю, что во избежание таких неопровержимых вопросов, как это, было решено, что пространство имен-области анонимных союзов должны быть объявлены статическими.