1. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление

Структуры

Тема в разделе "С и С++", создана пользователем korish, 8 дек 2010.

Статус темы:
Закрыта.
  1. korish

    korish Гость

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

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

    lazybiz Well-Known Member

    Репутация:
    0
    Регистрация:
    3 ноя 2010
    Сообщения:
    1.339
    Симпатии:
    0
    Вот так подойдет?
    Код:
    #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;
    }
     
  3. korish

    korish Гость

    Репутация:
    0
    Подойдет, спасибо.
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей