Тут вы правы.к примеру some массив из 10 значений REAL
тогда на вход функции попадет указатель на массив и число 40 (размер массива в байтах)
А вот здесь нет.в коде функции получается
stop:=(40-40)/40
SIZEOF(pt) в данном случае возвращает размер указателя. В реализации CODESYS - размер указателя всегда равен 32 бита (4 байта) на 32-битных рантаймах.
На 64-битных рантаймах он равен 64 бита, но во времена разработки OSCAT поддержки таких рантаймов еще не было.
В итоге: (40-4)/4 = 9
Логично - у вас массив из 10 элементов, индексация элементов ведется с 0 - значит, индекс последнего элемента и правда равен 9.




Ответить с цитированием
