36. POU для неявных проверок

Поділитися
Вставка
  • Опубліковано 17 вер 2024

КОМЕНТАРІ • 3

  • @slayzay
    @slayzay 3 роки тому

    Спасибо, Евгений!!! Решает проблему "кривых рук", а заодно проблему с "бета-библиотеками". Много лучше когда система что-то пропустит, проигнорирует, чем когда встанет или перезагрузится. Настроил с помощью этих знаний нормальные циклы для задач.

  • @mgm4ua
    @mgm4ua 3 роки тому

    Каким образом при записи в out of range массива aiData удалось попасть именно в переменную iSpecialValue ?

    • @CodesysOneLove
      @CodesysOneLove  3 роки тому +3

      Потому что компилятор разместил iSpecialValue по адресу, следующему за адресом aiData[3]. Очень удобно просматривать такие вещи с помощью плагина CODESYS Memory Tools (ftp.owen.ru/CoDeSys3/04_Library/05_3.5.11.5/01_Components/CODESYS%20Memory%20Tools%203.5.14.0.package).
      Логичный вопрос - почему компилятор поступил именно так? Почему следом за массивом размещена не переменная i?
      На этот вопрос у меня нет ответа - я не видел исходники компилятора 3S. Но зато это наглядно демонстрирует, что размещение переменных в памяти может быть вообще не связано с порядком их объявления в программе.