1. Акция на весь декабрь! Получай оплату х2 за уникальные статьи, объемом от 200 слов, если в заголовке темы и теле статьи присутствует слово Python
    Скрыть объявление

побитовые поля

Тема в разделе "Общие вопросы по С и С++", создана пользователем AlexSaaa, 21 сен 2005.

  1. AlexSaaa

    AlexSaaa Гость

    почитал теорию..вроде бы легко
    пытаюсь создать что-то простое для лучшего усвоения..и возникают ошибки..

    что делал:
    пытаюсь написать битовое поле для хранения времени(часы, минуты, секунды)
    создал структуру Время(пока не задаю длины) --> компилирует нормально..
    после того как задал длину поля..выдается ошибка в строке где пытаюсь ввести значение с клаиатуры
     
  2. DAle

    DAle Гость

    Ну хоть нашелся вопрос более-менее :blink:. Тут дело вот в чем.
    Для начала попробуем скомпилировать похожий код "нормальным" компилятором, а именно comeau. Получаем:
    Далее цитата из стандарта:
    9.6/3
    Дело в том, что operator<< требует неконстантную ссылку на int, а по приведенной выше цитате нельзя получить неконстантную ссылку на битовое поле.

    Заведи временную переменную типа int, прочитай, и присвой битовому полю.
     
  3. AlexSaaa

    AlexSaaa Гость

    не совсем понял.. можна подробнее про инт переменную
     
  4. DAle

    DAle Гость

    <!--QuoteBegin-AlexSaaa+21:09:2005, 15:14 -->
    <span class="vbquote">(AlexSaaa @ 21:09:2005, 15:14 )</span><!--QuoteEBegin-->не совсем понял.. можна подробнее про инт переменную
    [snapback]25039" rel="nofollow" target="_blank[/snapback]​
    [/quote]

    Что ж тут непонятного.
    Код (Text):
      int hours;
     cin >> hours;
     s.Hours = hours;
     
  5. AlexSaaa

    AlexSaaa Гость

    спасибо))
     
  6. AlexSaaa

    AlexSaaa Гость

    вот еще одна проблемка..как мне кажется из того же розряда..
    создано обьединение (unit) с int елементов
    нужно произвести некоторые арифметические действия с елементами обединения .. компилятор такие действия не допускоет ..вариант с временной инт еременной не проходит так как невозможно преобразовать елемент обьединения в инт елемент
     
  7. DAle

    DAle Гость

    Объединение - это вообще-то union. Если честно, ничего не понял толком, приведи код.
     
  8. AlexSaaa

    AlexSaaa Гость

    пытаюсь перевести число из десятично в 16-ую систему счисления
     
  9. Guest

    Guest Гость

    Чтобы обратиться к членам union надо указать их имя, то есть в твоем случае это, например, A.Red

    А вообще какой-то совсем неправильный подход, во-первых непонятно зачем тут union, во-вторых зачем-то функция, преобразующая десятичное число в 16ичное представление, имеет параметр типа color&. Да и вообще есть itoa.
     
  10. AlexSaaa

    AlexSaaa Гость

    это тиба пример из учебника..и насколько я понял..суть в том что-бы использовать обьединение
     
Загрузка...

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