Структуры

  • Автор темы korish
  • Дата начала
Статус
Закрыто для дальнейших ответов.
K

korish

Гость
#1
Требуется создать массив элементов в структуре. Необходимо чтобы каждый из элементов массива был размером в 1 бит.
Я пробовал сделать вот как:

struct aaa
{
unsigned int m[30] : 1 ;
};
При компиляции получаю ошибку.
Сейчас расписал каждый элемент массива отдельно:
struct bbb
{
unsigned int m1 : 1 ;
...
unsigned int m30 : 1 ;
};
Получается довольно громоздко. Можно ли как-то сделать более компактно?
 

lazybiz

Well-Known Member
03.11.2010
1 339
0
#2
Вот так подойдет?
C++:
#include <stdio.h>

//#pragma pack(push,1)
typedef struct {
char	bit:1;
} t_bit;

typedef struct {
t_bit	array[30];
} t_bit_array;
//#pragma pack(pop)

int main()
{
t_bit_array 	a;
a.array[0].bit = 1;

printf( "sizeof( t_bit ) = %d\n", sizeof( t_bit ) );
printf( "sizeof( t_bit_array ) = %d\n", sizeof( t_bit_array ) );

return 0;
}
 
Статус
Закрыто для дальнейших ответов.