Я написал эту программу:Как манипулировать бит целочисленного типа в c?
#include <stdlib.h>
#include <stdio.h>
#include <stdbool.h>
struct A {
bool a;
bool b;
bool c;
bool d;
};
struct B {
int a;
};
int main() {
struct A* pa = malloc(sizeof(struct A));
struct B* pb = (struct B*) pa;
pa->a = 0;
pa->b = 1;
pa->c = 0;
pa->d = 0;
printf("value of pint is %i\n", pb->a);
return 0;
}
Я ожидаю, что печать 2 (0010), но выход 256. Любая одна тучи помощь, что не так с этим кодом?
% Я напечатаю номер, вот почему – paulm
bools - это не бит. Если вы хотите бит-поле, используйте бит-поле. – harold