170 похожих чатов

И снова о наболевшем: вот у меня есть структура с

битовыми полями. По ссылке поля передавать в функцию нельзя. А есть ли вообще какой-нибудь способ их туда передать? желательно без макросов. Типа:

struct foo {
unsigned char a: 4
unsigned char b: 1
unsigned char c: 1
unsigned char d: 2
};

int main()
{
foo bfg9000;

auto f = [=] (auto storage) {
storage = 1; // на деле тут чуточку посложнее: значение бита получаем из контрола
};

// задача -- пройтись по всем битам в структуре таким образом
f(bfg9000.a); // нихт компилирен
}

5 ответов

5 просмотров

Всю структуру можешь передать, по ссылке

Flower-Surgeon Автор вопроса
Ilya Zviagin
Всю структуру можешь передать, по ссылке

Мне нужно ещё как-то донести до функции какое поле ей менять внутри.

Flower Surgeon
Мне нужно ещё как-то донести до функции какое поле...

Отдельный аргумент заведи. Ссылку на часть байта физически нельзя сделать - так что, только вся структура.

Flower-Surgeon Автор вопроса
Mikhail Kalugin
Отдельный аргумент заведи. Ссылку на часть байта ф...

Ну, это понятно. Видимо, с енамчиками придётся. Спасибо.

Похожие вопросы

Обсуждают сегодня

Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
55
кто-то пользуется компонентами rx ? как их лучше ставить, через OPM? (lazarus)
Iluha Companets
15
подскажите пожалуйста, как мне освободить результат записанный в переменную result? в чем проблема подскажите если МОЖЕТЕ?
Михаил Helper
28
есть тут кто-то , кто только начал изучать си? если проходите курс на степике или как-то сами изучаете, пишите, может, скооперируемся?..
Eule
25
Слушайте, ещё такая интересная задачка. Сделан аудит действий пользователей через триггеры в базе, соответственно каждый пользователь имеет свой логин и пароль в базе. Это пре...
Сергей Бычков
12
Скажите, тут нет проблемы? IMyInterface1 = interface function GetInterface2: IInterface2; ... function TMyInterface.GetInterface2: IInterface2; begin Result := TI...
Ruslan aka DUDE
18
вопрос по москвину - не понимаю вот такого вопроса похоже Сколько разных всегда завершающихся функций с типом a -> a -> b -> a -> a можно реализовать? Две функции одинаково...
Fedor
11
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
t.me/<username> и tg://user?id=<id> отваливаются по понятным причинам
Denis 🐍|👑 | darling! 🥰
7
Кстати, раз про скачивание файлов разговор зашел) Сделал бота для себя (транскрибирующего и суммаризирующего встречи) но не ожидал что за 2 месяца 10к пользователей набежит😅...
Andrey Obolenskiy
8
Карта сайта