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

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

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #5

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    ...про которые было известно, что размер указателя там равен 4 байта....
    в таком случае это излишнее усложнение и строку

    Код:
    stop := (size - SIZEOF(pt)) / SIZEOF(pt);
    можно было написать проще и понятнее для человека:

    Код:
    stop := (size - 4) / 4;
    хотя, конечно для компилятора по итогу все равно, так как SIZEOF(pt) на начальном этапе компиляции заменяется на константу 4.

    PS. кстати, я задался этим вопросом потому, что переделывал под себя пару ФБ из oscat_basic.
    все блоки работающие с массивами в этой библиотеке предназначены для массивов REAL.
    А мне нужны были для INT массивов.
    Я, не долго думая, взял исходники и переделал их под INT, но допустил такую вот ошибку (выше)

    PPS. вот в другом месте ребята этот вопрос решили по другому:

    Код:
    stop := SHR(size,2)-1;
    но это мне было мне понято. побитовый сдвиг вправо на два знака, равносилен делению на 4,
    и для работы с INT достаточно было сдвигать на 1, чтобы получить деление на 2.
    Последний раз редактировалось Schneider; 18.04.2023 в 07:20.

Похожие темы

  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

Ваши права

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