Цитата(Alla_student @ Apr 5 2011, 15:54)

Я начала только заниматься программированием на СИ и встретилась с непонятными записями - конструкциями в исходниках на СИ:
1) работа со структурами
HSRR1 = pTpu->HSRR1;
HSRR1.Field.CH0 = 0x3;
HSRR1.Field.CH1 = 0x3;
HSRR1.Field.CH2 = 0x1;
HSRR1.Field.CH3 = 0x3;
HSRR1.Field.CH4 = 0x3;
HSRR1.Field.CH5 = 0x1;
HSRR1.Field.CH6 = 0x2;
HSRR1.Field.CH7 = 0x2;
pTpu->HSRR1 = HSRR1;
что здесь делает первая и последняя строка, первая понятно заносит значение регистра pTpu в HSPR1, а последняя?
2) зачем используется подчеркивание перед именем константы или переменной?
3) такая запись *my_value означает ссылку, а такая *my_value * что?
Где вообще можно почитать про всякие хитрые конструкции на зыке СИ с манипуляцией с ссылками, с присвоением типов и т.д.?
Спасибо за внимание.
Все зависит от особенностей психики конкретного программиста.
Первый пункт это просто такая попытка очень ясно и самодокументировано показать в какое поле регистра что записывается, но при этом саму запись в регистр провести за один цикл (некоторые аппаратные регистры к этому критичны). Способов сделать то же самое, но в других выражениях есть туча.
Такая запись могла быть также следствием того, что программисту уже достались готовые хидеры с таким описанием структур регистров.
Подчеркивание. Это может связано с желанием указать на некоторую интимность переменной. Т.е. что-то такое, что не вписывается в официальную структуру программы или о чем не должны спрашивать другие программисты.
Никогда не использовал подчеркивание впереди переменных. Правда иногда юзаю чтобы в алфавитных списках такие имена оказывались наверху.
Последний пункт похоже сильно вырван из контекста, может умножение с переносом продолжения в следующую строку?
По молодости хочется следовать советам из книжек, но потом понимаешь, что следовать логичнее устоявшимся практикам сорсов с которыми больше всего работаешь и собственным психологическим особенностям.
А они могут кардинально противоречить даже самым именитым авторам.