Ответы пользователя по тегу C++
  • Почему цикл даже не запускается?

    @ittakir
    Запускаешь в режиме отладки Debug и идешь по шагам, проверяя значения переменных.
    Никто кроме вас в ваших портянках кода разбираться не будет.
    Ответ написан
    Комментировать
  • Какой истинный путь начинающего в STM32?

    @ittakir
    То что вы выбрали С++ путь, это правильно.
    1. Сгенерируйте проект в STM32CubeMx. Задайте параметры пинов, подключите необходимую периферию (UART, SPI).
    2. Экспортируйте проект в IAR ARM или Keil.
    3. Собирайте код и заливайте в плату. Вы не написали ни строчки кода, а уже получили рабочий каркас приложения.
    4. Читайте даташиты на чип (нужен тот, где описываются все регистры периферии), и документацию на HAL. Основная ваша работа будет идти через HAL, про регистры читать для общего понимания как может работать периферия.
    Ответ написан
    5 комментариев
  • Как узнать размер массива?

    @ittakir
    Для фиксированных массивов так:
    int array[33];
    int count = sizeof( array ) / sizeof( array[0] );
    //count == 33
    Ответ написан
    Комментировать
  • Как проверить что по serial пришел полный пакет данных?

    @ittakir
    Ответ зависит от того, кто вам засылает данные в COM порт, в каком формате.
    По хорошему, нужно как-то маркировать конец пакета данных. Это либо передавать сначала количество данных, потом сами данные. Либо передавать специальный символ конца пакета, например "\n\n". Либо просто по таймауту, когда данные идут непрерывным потоком, а если данных не было более чем 1 секунду, то считаем что пакет завершен.
    Скорее всего вам подойдет последний вариант.
    Ответ написан
    Комментировать
  • Какой стандарт c++ изучать?

    @ittakir
    C++11 знать нужно, потому что там есть умные указатели, лямбды.
    Остальное не так уж важно поначалу, особенно то что касается шаблонов.
    Ответ написан
    Комментировать
  • Как объединить общие зависимости для нескольких cpp файлов?

    @ittakir
    Правильнее всего в каждый файл включать необходимый ему набор зависимостей, пользоваться forward declaration для h файлов и делать #include в cpp файле. Тогда такие файлы можно использовать в другом проекте с минимальными правками.

    Если есть набор каких-то общих типов данных для всего проекта, то я создаю файл common_types.h, в нем делаю #include <string> #include <vector>, свои типы через typedef'ы, а во все остальные файлы просто указываю #include "common_types.h".
    Ответ написан
    3 комментария
  • Как сделать чтобы открывался только один инстанс дочернего окна?

    @ittakir
    Как у вас происходит показ окна? Вы скорее всего создаете новый объект с помощью new, устанавливаете ему какие-то параметры и вызываете show().
    Если вы хотите чтобы было видно не более одного экзумпляра окна, вы не можете создавать объекты с помощью new, вы должны вызвать какую-то функцию, которая предоставит вам готовый объект (новый или уже существующий). Как она будет реализована - решать вам. Самое простое - глобальная переменная. Далее можно её скрыть в классе MainWindow и выдавать по запросу через публичный метод MainWindow. Плюсом этого подхода будет то, что можно MainWindow сделать родителем этого объекта, а значит он автоматически удалится при завершении программы и отображаться будет тоже вместе с главным окном. Можно сделать и синглтон, но тут нужно внимательно следить, когда он будет создан и будет ли удален потом.
    Ответ написан
    5 комментариев
  • Почему указатель на char выводит всю строку, а не первый символ?

    @ittakir
    Потому что вы выводите в cout указатель на char. Если хотите вывести только первый символ, передавайте его по значению:
    cout << *s;
    //или
    cout << s[0];
    Ответ написан
    Комментировать
  • Структуры и классы в чем разница?

    @ittakir
    Наследование и поля в class по-умолчанию private, в struct - public.
    В остальном все одинаково.
    Ответ написан
    Комментировать
  • Сколько можно зарабатывать на C++ в 14 лет?

    @ittakir
    Пока можешь только помочь однокласснику с задачками по информатике за деньги. На большее 2 недели С++ не тянут.
    В реальности во фрилансе по теме С++ ждут как минимум middle разработчика. Это опыт несколько лет, несколько завершенных проектов, и главное, самостоятельность.

    Я бы посоветовал лучше изучить мобильную разработку или web. Сначала сделать для себя несколько проектов. Набить руку, портфолио создать. И только потом уже пытаться делать что-то за деньги.
    Ответ написан
    3 комментария