Язык С

Структуры и объединения


Только две вещи можно сделать со структурой или объеди- нением: назвать один из их членов (с помощью операции) или извлечь их адрес ( с помощью унарной операции &). Другие операции, такие как присваивание им или из них и передача их в качестве параметров, приводят к сообщению об ошибке. В бу- дущем ожидается, что эти операции, но не обязательно ка- кие-либо другие, будут разрешены. В п. 15.1 Говорится, что при прямой или косвенной ссылке на структуру (с помощью . Или ->) имя справа должно быть членом структуры, названной или указанной выражением слева. Это ограничение не навязывается строго компилятором, чтобы дать возможность обойти правила типов. В действительности перед '.' допускается любое L-значение и затем предполагает- ся, что это L-значение имеет форму структуры, для которой стоящее справа имя является членом. Таким же образом, от вы- ражения, стоящего перед '->', требуется только быть указате- лем или целым. В случае указателя предполагается, что он указывает на структуру, для которой стоящее справа имя явля- ется членом. В случае целого оно рассматривается как абсо- лютный адрес соответствующей структуры, заданный в единицах машинной памяти. Такие структуры не являются переносимыми.



    Содержание раздела