Интереса ради глянул. Там местами глупости всякие говорятся вроде этой:читать срочно: И.В. Петров "Язык ST для C программиста - CoDeSys"Булшит. Оно не запрещено. Оно даже реализовано для числовых типов — их можно преобразовывать к бОльшим типам: INT -> DINT, например. Для указателей неявное преобразование тоже реализовано: POINTER TO X <-> DWORD. Другое дело, что нет возможности объявить своё неявное преобразование.Неявное преобразование типов запрещено. Любое преобразование нужно делать явно спомощью специальных операторов. Запомнить их легко. Пишем исходный тип, далее _TO_ инужный тип. Например: iX := REAL_TO_INT(rX);
И вообще «традиционному программисту» я бы сказал вот чего... Программа на языках 61131-3 пишется как функция моментального вычисления зависимости выходов от внешних сигналов и внутренних переменных. Контроллер постоянно как можно быстрее пересчитывает эту функцию вновь и вновь. По сути это традиционный опрос, только в режиме опроса работает целиком вся программа.
В таком режиме работы очень легко выстрелить себе в ногу динамическим выделением памяти, поэтому его среди стандартных возможностей языка и функций не предусмотрено. Указатели и функции выделения памяти не являются частью стандарта, и с ними надо быть осторожным.
Чего нет ещё в стандартной комплектации: рекурсии, указателей на функции, операции взятия указателя (указатели инициализируются только через неявное преобразование из DWORD), в принципе указателей вообще нет (но раз уж кодесис, то ладно), препроцессора, блокирующих функций, управляемой многопоточности. Да много чего нет. Главное — понять и полюбить программирование в бесконечном опросе.




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