Убрать warning (return VALUE)

Тема в разделе "WASM.BEGINNERS", создана пользователем snezhokusr, 3 апр 2025.

  1. Research

    Research Active Member

    Публикаций:
    1
    Регистрация:
    6 янв 2024
    Сообщения:
    215
    Лучше закоментировать для достижения наибольшей скорости.
     
  2. MaKsIm

    MaKsIm Active Member

    Публикаций:
    0
    Регистрация:
    11 фев 2008
    Сообщения:
    168
    Может не взлететь. Некоторые версии для пустых файлов начинают ругаться про отсутствие main. Особенно, если без ключа -c скармливать.
     
  3. Research

    Research Active Member

    Публикаций:
    1
    Регистрация:
    6 янв 2024
    Сообщения:
    215
    Кстати в python такой проблемы нет. Можно с чистой душой создать например MainCode.py, и спокойно интерпретировать. Это в защиту python'а который все хают.
     
    Последнее редактирование: 9 апр 2025 в 01:13
  4. snezhokusr

    snezhokusr New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2025
    Сообщения:
    9
    шутка зачетная,
    но хоть намекните в каком случае может сработать условие if (!handle)
     
  5. MaKsIm

    MaKsIm Active Member

    Публикаций:
    0
    Регистрация:
    11 фев 2008
    Сообщения:
    168
    Нажимаем Ctrl+F и вводим handle
    Находим две строчки (больше, но остальное не интересно):
    1) 35: HWND handle=NULL; ///< Handle to window that receives MESS_SERIAL messages.
    2) 132: handle = hwnd;

    Отлично. Первая строка это объявление переменной, а вторая её инициализация. Теперь надо понять, когда же инициализация переменной может дать (!handle)

    Повторяем аналогичные действия для hwnd, чтобы понять откуда берется значение для инициализации переменной handle и находим от такую строчку
    69: BOOL OpenPort(int port,int baud,int HwFc, HWND hwnd)
    Таким образом мы выясняем, что (!handle) проверяет корректность переданного параметра в функцию при вызове.
    --- Сообщение объединено, 9 апр 2025 в 16:16 ---
    Можно было бы просто проверить его один раз в самой функции OpenPort, а не проверять каждый раз внутри функции потока (нити), но handle это глобальная переменная и она может быть изменена повторным вызовом OpenPort или другими средствами доступа к этой переменной. Поэтому приходится проверять корректность параметра каждый раз в новом потоке перед использованием.

    В идеале надо было бы создавать структуру с параметрами в динамической памяти, чтобы поток не зависел от глобальных переменных. Тогда, если вам понадобится обращаться с двумя и более экземплярами такого кода, то они не будут конфликтовать друг с другом из-за использования общих глобальных переменных.
     
    snezhokusr, alex_dz и Mikl___ нравится это.
  6. snezhokusr

    snezhokusr New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2025
    Сообщения:
    9
    Спасибо за подробный ответ.
    Но в каком случае может сработать условие if (!handle).
    Если это подвязано под открытие порта. То я и повторно открывал уже занятый порт
    и открывал несуществующий порт, но ни разу условие if (!handle) не выполнилось.
    Как или чем вызвать эту ошибку?
     
  7. MaKsIm

    MaKsIm Active Member

    Публикаций:
    0
    Регистрация:
    11 фев 2008
    Сообщения:
    168
    Перечитайте мой ответ. Там все есть
    --- Сообщение объединено, 10 апр 2025 в 14:51 ---
    Я не просто так вам привел две строки при поиске handle