печатать тип бита как целое число? Как конвертация?

программа:

typedef struct xp {
        int a:2;
        int b:2;
        int c:1;
} xp;

int main(void)
{
        xp x;
        memset(&x, 0, sizeof(xp));

        x.a = 1;
        x.b = 3;
        x.c = 1;

        printf("%d\n",x.a);
        printf("%d\n",x.b);
        printf("%d\n",x.c);

        return 0;
}

Я получаю 1 -1 -1, почему? Как a, b и c хранятся в x? Что произошло, когда printf ("%d\n",x.a ); выполняется?

7
задан Fei Xue 7 August 2012 в 23:21
поделиться