Опираясь на комментарий Карла Билефельда:
Вы можете создать объединение символа и битового поля, например:
typedef union
{
unsigned char byte;
unsigned char b0 : 1;
unsigned char b1 : 1;
unsigned char b2 : 1;
unsigned char b3 : 1;
unsigned char b4 : 1;
unsigned char b5 : 1;
unsigned char b6 : 1;
unsigned char b7 : 1;
}TYPE_BYTE;
TYPE_BYTE sample_byte;
..., а затем назначить значение для sample_byte.byte иобращаться к каждому отдельному биту как sample_byte.b0, sample_byte.b1 и т. д. Порядок, в котором назначаются биты, зависит от реализации - прочитайте руководство по компилятору, чтобы узнать, как оно реализует битовые поля.
Также можно создавать битовые поляс большими типами int.
Редактировать (2011-03-15):
Предполагая, что, возможно, вы хотите прочитать трехзначное целое число от 10 до 10 и разбить три цифры на три переменные, вот код, который должен это сделать,Он не был протестирован, поэтому вам, возможно, потребуется внести некоторые изменения:
void split_base10(const unsigned int input, unsigned int *a, unsigned int *b, unsigned int *c)
{
unsigned int x = input;
*c = x%10;
x /= 10;
*b = x%10;
*a = x/10;
}
Удачи!