-
- Указателем, разумеется. В Си еще глубокая абстракция есть, можно сделать указатель на массив функций. - Visitor(20.01.2024 23:20)
- Да вроде всё просто VladislavS.(1 знак., 19.01.2024 17:08, ссылка)
- Спасибо, но это немного не то, о чем спрашивал, но по общей идее - то :) Надо было засунуть безымянную структуру в аргументы ф-ции. - Argon(19.01.2024 20:33)
- Отлично, спасбо. Открыл для себя заново. По идее, пойдёт для того,
чтобы расставлять значения полей реистров МК без кучи разрозненных
обращений и без явной подготовки значения регистра в буфере или в
константе. Десяток лет назад, кажись, пробовал. Но оно в старом
XC8, вроде, не рабоатло. - Nikolay_Po(19.01.2024 20:06)
- Регистры это volatile сущности, с ними так не работает. Разве что
для копии какого-нибудь регистра статуса с кучей разношерстных
полей. Один раз считываем во временную переменную и уже с её полями
работаем. Результат хороший, но много одноразовой кропотливой
писанины. Не стоит оно того. Вот, например, пробовал для usb-шного
региста. VladislavS.(137 знак., 20.01.2024 13:05, картинка)
- Я так: Nikolay_Po(1582 знак., 20.01.2024 20:45)
- Да не дают никаких преимуществ битовые поля, кроме избавления от
ручного писание масок. - VladislavS.(20.01.2024 22:08)
- Ну, ручное писание структуры всё равно нужно. По идее, если компилятор идеален, то выражения с членами структуры регистра будут той же эффективности, что и выражения с масками. Жаль, революции не случилось. Но ещё раз спасибо. Инструмент созрел. Буду применять, где уместно. Попробовал - работает. - Nikolay_Po(20.01.2024 23:13)
- Да не дают никаких преимуществ битовые поля, кроме избавления от
ручного писание масок. - VladislavS.(20.01.2024 22:08)
- Я так: Nikolay_Po(1582 знак., 20.01.2024 20:45)
- Регистры это volatile сущности, с ними так не работает. Разве что
для копии какого-нибудь регистра статуса с кучей разношерстных
полей. Один раз считываем во временную переменную и уже с её полями
работаем. Результат хороший, но много одноразовой кропотливой
писанины. Не стоит оно того. Вот, например, пробовал для usb-шного
региста. VladislavS.(137 знак., 20.01.2024 13:05, картинка)
- Это называется compound literals. func((struct mystruct){ .field1 =
val }); - SciFi(19.01.2024 17:01)
- Фиг там, не работает... Это работает для "неаргументных" структур. - Argon(19.01.2024 17:04 - 20:29)
- У вас какой-то неправильный с99. Контрафактный, наверное. - SciFi(19.01.2024 17:04)
- Фиг там, не работает... Это работает для "неаргументных" структур. - Argon(19.01.2024 17:04 - 20:29)