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

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

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

9
задан Fred Foo 7 October 2010 в 00:36
поделиться