Показано с 1 по 10 из 10

Тема: stop := (size - SIZEOF(pt)) / SIZEOF(pt); как это работает?

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,612

    По умолчанию

    к примеру some массив из 10 значений REAL
    тогда на вход функции попадет указатель на массив и число 40 (размер массива в байтах)
    Тут вы правы.

    в коде функции получается
    stop:=(40-40)/40
    А вот здесь нет.

    SIZEOF(pt) в данном случае возвращает размер указателя. В реализации CODESYS - размер указателя всегда равен 32 бита (4 байта) на 32-битных рантаймах.
    На 64-битных рантаймах он равен 64 бита, но во времена разработки OSCAT поддержки таких рантаймов еще не было.

    В итоге: (40-4)/4 = 9

    Логично - у вас массив из 10 элементов, индексация элементов ведется с 0 - значит, индекс последнего элемента и правда равен 9.

  2. #2

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    SIZEOF(pt) в данном случае возвращает размер указателя. В реализации CODESYS - размер указателя всегда равен 32 бита (4 байта) на 32-битных рантаймах.
    На 64-битных рантаймах он равен 64 бита, но во времена разработки OSCAT поддержки таких рантаймов еще не было.

    В итоге: (40-4)/4 = 9
    Спасибо. Я догадывался, о чем то подобном. Да, ведь через ADDR мы получаем только адрес начала массива безотносительно его размеров . Только непонятно, что задумал автор? Ведь в других системах sizeoff(адрес) будет зависеть от количества адресуемой памяти видимо. А размер real так и останется 4 байта. Или 8 байт байт и это универсальный код получается?

Похожие темы

  1. SIZEOF в codesys 2.3
    от leoSMD в разделе ПЛК1хх
    Ответов: 7
    Последнее сообщение: 17.04.2023, 18:48
  2. ПЛК110-(М02) выключатель run-stop
    от confiden в разделе ПЛК1хх [М02]
    Ответов: 9
    Последнее сообщение: 06.01.2018, 17:37
  3. ПЛК100, безопасное отключение в STOP
    от Alor в разделе ПЛК1хх
    Ответов: 6
    Последнее сообщение: 27.04.2010, 18:22
  4. Как правильно пользоватся Callback STOP?
    от !nferno в разделе ПЛК1хх
    Ответов: 0
    Последнее сообщение: 22.04.2009, 07:51
  5. Start/Stop протокола Owen
    от Dmitry в разделе ПЛК1хх
    Ответов: 1
    Последнее сообщение: 13.08.2007, 21:21

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •