Могу ли я доверять тому, что компилятор C по модулю 2 ^ n каждый раз, когда я обращаюсь к битному полю? Или существует какой-либо компилятор/оптимизация, где код, подобный приведенному ниже, не будет распечатывать переполнение?
struct {
uint8_t foo:2;
} G;
G.foo = 3;
G.foo++;
if(G.foo == 0) {
printf("Overflow\n");
}
Спасибо, Advance, Флориан