Como vos los planteas, esta es la solucion que se me ocurre
Podes usar una union de un uint8_t y una structura de bitfields... algo asi:
union myuint8_t {
struct {
uint8_t F0: 1;
uint8_t F1: 1;
uint8_t F2: 1;
uint8_t F3: 1;
uint8_t F4: 1;
uint8_t F5: 1;
uint8_t F6: 1;
uint8_t F7: 1;
};
uint8_t valor;
};
entonces lo inicializas
union myuint8_t FLAGS;
Y acceder luego o cambiar los bits con:
Lo que si no tenes que confiarte que F0 va a ser el bit 0 siempre. Ya que el orden de los bitfields es dependiente del compilador.
--------------------
Por otro lado al querer acceder a un bit generalmente se usan las AND y OR
if ( FLAGS & ( 1 << x ) )
Donde x es el numero de bit que te interesa.
Si queres poner a 1 el bit 3 por ejemplo usas:
Si queres poner a 0 el bit 7 por ejemplo usas:
MikroC te da esa facilidad que contas, pero la mayoria utiliza este que nombre al ultimo.