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