Я делаю нечто подобное во встроенном приложении под C99. У меня есть переменная с именем phaseInstill , которая «назначена» на структуру:
phaseInstill = (PhaseVolumeStatus)
{
.complete = false,
.ticksInstilled = 0,
.volumeInstilled = 0,
.volumeRemaining = instillVolume
};
Где PhaseVolumeStatus определяется как:
typedef struct
{
Value volumeRemaining; /*!> ml */
Value volumeInstilled; /*!> ml */
Value ticksInstilled; /*!> ticks */
bool complete;
} PhaseVolumeStatus;
У меня нет удобного примера с битовым полем, но я не помню, чтобы он работал по-другому в любом другом моем использовании.