1. В сообществе нашего форума Вконтакте создан раздел по продаже электронных компонентов.
    Каждый может продать в нем свои залежавшиеся детали. Подробности здесь.

C/C++ C++. Разрядные поля

Тема в разделе "Программирование", создана пользователем radioengineer, 5 авг 2015.

  1. radioengineer

    radioengineer Администратор Команда форума

    Сообщения:
    3.488
    Симпатии:
    345
    Адрес:
    Алматы
    Читая Прату, заметил для себя один небольшой абзац буквально несколько строк про разрядные поля в структурах, до этого я о них не слышал, а тут наткнулся и понял, что вещь это очень нужная для embed разработчиков.
    C++ дает возможность определить элементы структуры, которые занимают указанное количество разрядов, что может быть удобно для создания структуры данных, которая соответствует, например, регистру на каком-либо микроконтроллере или протоколу передачи данных. Тип поля структуры в этом случае должен быть целым числом, каждый элемент такой структуры называется разрядным полем. Ниже пример:
    Код:
    struct torgle_register {
        int SN : 4;                   // четыре разряда для значения SN
        int : 4;                     // четыре разряда не используются
        bool goodIn : 1;             // корректный ввод (один разряд)
        bool goodTorgle : 1;         // успешное присвоение
    };
    Для обращения к разрядным полям используется стандартная система обозначений структуры:
    Код:
    torgle_register tr;
    ......
    if (tr.goodIn)
    ......
     
    : c++, struct
  2. _VN_

    _VN_ В доску свой

    Сообщения:
    468
    Симпатии:
    58
    Род занятий:
    Инженер
    Адрес:
    Алматы
    Подробная справочная информация по C++ дана в Builder 6 Архангельского. Часто приходилось делать проверку правильности изложенного в книге путём разработки отдельных примеров с целью определения допустимых значений переменных и констант.
  3. SeregaZ

    SeregaZ В доску свой

    Сообщения:
    391
    Симпатии:
    38
    о! посодействуйте у кого нормальный этот С++ есть :) скачивал штуки три разных и все ругаются при компиляции этого проекта: https://github.com/realmonster/GEMS
    ладно бы там ошибки какие-то были бы понятные - но что мне эти недокомпиляторы пишут - не понятно, черт ногу сломит :)
  4. _VN_

    _VN_ В доску свой

    Сообщения:
    468
    Симпатии:
    58
    Род занятий:
    Инженер
    Адрес:
    Алматы
    Существует несколько клонов языка С++. Они похожи, но несовместимы между собой. Вы должны выбрать своего кумира, в хорошем смысле этого слова.
  5. radioengineer

    radioengineer Администратор Команда форума

    Сообщения:
    3.488
    Симпатии:
    345
    Адрес:
    Алматы
    Что за клоны? Язык С++ везде одинаковый, есть различные компиляторы языка.
  6. nomugop

    nomugop Живет здесь

    Сообщения:
    102
    Симпатии:
    17
    Адрес:
    Алматы
    разрядные поля чаще называют, битовые поля, во вложенном файле более подробно о структурах и битовых полях, это обучалка центра специалист, все очень подробно
    по мне лучший Visual Studio http://nnm-club.me/forum/viewtopic.php?t=170398 вот единственная ломанная полная версия которую мне удалось найти в инете версия 2008, имеется почти весь функционал новых версий

    Вложения:

    Последнее редактирование: 6 авг 2015
  7. _VN_

    _VN_ В доску свой

    Сообщения:
    468
    Симпатии:
    58
    Род занятий:
    Инженер
    Адрес:
    Алматы
    Каждый компилятор поддерживает фирма-разработчик, они не гарантируют совместимость этих компиляторов между собой и, следовательно, несовместимость по языку.
  8. nomugop

    nomugop Живет здесь

    Сообщения:
    102
    Симпатии:
    17
    Адрес:
    Алматы
    http://nnm-club.me/forum/viewtopic.php?t=457306&sid=70f073acdb9a529ff8d5039799498734 Си
    http://nnm-club.me/forum/viewtopic.php?t=435695 Си++
    Видео уроки центра специалист + pdf уроки все очень четко и понятно
    Рекомендую скачать пока есть, т.к. на rutracker их уже стерли
    Для просмотра требуется видео кодек GoToMeeting, он либо вложен в раздаче, либо нужно скачать с сайта разработчиков
    Последнее редактирование: 6 авг 2015
    radioengineer нравится это.
  9. radioengineer

    radioengineer Администратор Команда форума

    Сообщения:
    3.488
    Симпатии:
    345
    Адрес:
    Алматы
    Отсюда вывод, что стоит доверять open source проектам, лучший компилятор GCC и G++, все остальное это зло.
  10. SeregaZ

    SeregaZ В доску свой

    Сообщения:
    391
    Симпатии:
    38
    этот G++ компилирует тот проект без запинок?
  11. nomugop

    nomugop Живет здесь

    Сообщения:
    102
    Симпатии:
    17
    Адрес:
    Алматы
    express версия Visual Studio все скомпилирует, весит всего 700-800мб
  12. SeregaZ

    SeregaZ В доску свой

    Сообщения:
    391
    Симпатии:
    38
    на казторке вроде чото есть... Microsoft Visual Studio 2010 Express [Eng] пойдет?
    Включает
    Экспресс-выпуск Visual Web Developer 2010
    Экспресс-выпуск Visual C# 2010
    Экспресс-выпуск Visual Basic 2010
    Экспресс-выпуск Visual C++ 2010

    так тут и просто си есть? :) это хорошо... а то второй проект на с, который мне надо расковырять...


    там правдо сидов нет... в моем недокомпиляторе, что третий по счету пишет следующее:
    Код:
    C:\WINDOWS\TEMP\ccckJeyd.o    redconv.cpp:(.text+0x4d): undefined reference to `InstrumentConverter::FormatByName(char const*)'
    C:\WINDOWS\TEMP\ccckJeyd.o    redconv.cpp:(.text+0x60): undefined reference to `InstrumentConverter::FormatByName(char const*)'
    C:\WINDOWS\TEMP\ccckJeyd.o    redconv.cpp:(.text+0x110): undefined reference to `InstrumentConverter::FormatSize(int)'
    C:\WINDOWS\TEMP\ccckJeyd.o    redconv.cpp:(.text+0x189): undefined reference to `InstrumentConverter::Import(int, unsigned char const*)'
    C:\WINDOWS\TEMP\ccckJeyd.o    redconv.cpp:(.text+0x1df): undefined reference to `InstrumentConverter::Export(int, unsigned char*) const'
    C:\WINDOWS\TEMP\ccckJeyd.o    redconv.cpp:(.text+0x232): undefined reference to `InstrumentConverter::FormatSize(int)'
    G:\DISTR\SEREGASOFT\MIDI\GEMS-master\collect2.exe    [Error] ld returned 1 exit status
    и что ему, собственно, надо?
  13. nomugop

    nomugop Живет здесь

    Сообщения:
    102
    Симпатии:
    17
    Адрес:
    Алматы
    Можно и eng но обычно можно найти и rus, я на 2008 сам пока сижу
    Вот тут вроде
    https://code-live.ru/post/visual-studio-2008-express-edition-russian/
    кажись даже версия русская
    http://nnm-club.me/forum/viewtopic.php?t=170398
    а тут полная версия, качать замучаешься, но это того стоит
    при скачивании полнои версии убери галки с англ версии

    Кстати в Visual Studio по нажатию F4 перебираются ошибки
    Последнее редактирование: 6 авг 2015
  14. SeregaZ

    SeregaZ В доску свой

    Сообщения:
    391
    Симпатии:
    38
    а сидов нет. есть 2012... но там написано виндовс 7 и выше. хп видимо не фурычит... эх...

    ну твой визуал тот проект компилирует?
  15. nomugop

    nomugop Живет здесь

    Сообщения:
    102
    Симпатии:
    17
    Адрес:
    Алматы
    Там нет нужного файла для запуска на VS я не хочу код перетаскивать в ручную) лень
  16. SeregaZ

    SeregaZ В доску свой

    Сообщения:
    391
    Симпатии:
    38
    так там ж кнопка справа - доунлоад.

    в кратце я так понимаю что у него эти функции есть в его компиляторе, а в моем нет и поэтому ругается? он кстати с горем попалам ответил что это был 2010. то есть твой 2008 может и не подойти?
  17. nomugop

    nomugop Живет здесь

    Сообщения:
    102
    Симпатии:
    17
    Адрес:
    Алматы
    Да не я скачал, просто чтобы проект запустить видимо и правда нужен 2010 или же придется проект самому создавать и код копипастить
    А вообще не совсем понятно нет файла с расширением sln. для запуска проекта, это точно на VS делалось? Или может он не все файлы выложил
    --- Сообщения объединены, 6 авг 2015 ---
    А все я понял ща попробую скомпилировать
    Последнее редактирование: 6 авг 2015
  18. nomugop

    nomugop Живет здесь

    Сообщения:
    102
    Симпатии:
    17
    Адрес:
    Алматы
    В общем ошибки выдает такие как:
    1. Массив нулевого размера (Невозможно создать конструктор копии или оператор присвоения копии, когда UDT содержит массив нулевого размера)
    2. несоответствие типов со знаком и без знака
    3. И предупреждение что функция fopen не безопасна
    4. Так же не найден идентификаторы некоторых переменных
    5. и преобразование из double в int (возможна потеря данных)
    Последнее редактирование: 6 авг 2015
  19. SeregaZ

    SeregaZ В доску свой

    Сообщения:
    391
    Симпатии:
    38
    а у меня только докачался твой... эх... а так, глядя на код хоть примерно сможешь сказать по какому алгоритму он файл разбирает? там вроде как он должен raw файл, с непойми чем, конвертировать в таблицу с цифрами.
  20. nomugop

    nomugop Живет здесь

    Сообщения:
    102
    Симпатии:
    17
    Адрес:
    Алматы
    Код огромный ) это долго

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