Анонимные структуры в C найдены в ядре Unix

Я начал читать комментарий Льва на Unix v6. Я наткнулся на эти фрагменты, которые я никогда не видел в языке Си. Автор дает какое-то объяснение, но может ли кто-нибудь объяснить мне, что здесь происходит?

params.h :

SW 0177570
...... 
struct { int integ; };

и это используется вunix/prf.c

if(SW->integ == 0)

Пояснение автора

SW предварительно определено как значение 0177570. Это адрес ядра регистра процессора, доступного только для чтения, в котором хранятся настройки регистра переключателя консоли. Смысл утверждения ясен: получите содержимое по адресу 0177570 и посмотрите, не равны ли они нулю. Проблема состоит в том, чтобы выразить это в C. Кодif (SW == 0) не передал бы это значение. очевидноSW это значение указателя, которое должно быть разыменовано Компилятор мог быть изменен для принятияif (SW-> == 0) но в нынешнем виде это синтаксически неверно. Изобретая фиктивную структуру, с элементомinteg Программист нашел удовлетворительное решение своей проблемы.

Мой вопрос, в основном, как это работает? Когда компилятор видитSW->integкак это ассоциируетсяSW с анонимной структурой?

Ответы на вопрос(1)

Ваш ответ на вопрос