Читали этот документ?
http://www.kipshop.ru/CoDeSys/steps/...isu_v23_ru.pdf
Вид для печати
Читали этот документ?
http://www.kipshop.ru/CoDeSys/steps/...isu_v23_ru.pdf
С праздником всех! Народ, почему объявление локальной переменной в функции через 'AT' не вызывает ошибку компиляции? Что с происходит с этой переменной после вызова функции?
По стандарту в функциях действительно не допускается объявление таких переменных. Однако компилятор CoDeSys 2.x во многом забивает на этот стандарт — в частности на правило указывать в документации, что поддерживается и что не поддерживается. См. мои сообщения в теме CoDeSys v2.3.Цитата:
почему объявление локальной переменной в функции через 'AT' не вызывает ошибку компиляции?
Тут интереснее будет посмотреть, что происходит до вызова. По идее, если вы указываете расположение переменной в памяти через AT, то пропадает необходимость выделять и освобождать память под эту переменную. Получается то же самое, что обращение через объявленный в функции указатель на глобльную переменную — какая разница, что будет с указателем после вызова функции? Под вопросом остаётся инициализация, которая происходит после создания фрейма функции.Цитата:
Что с происходит с этой переменной после вызова функции?
Понятно, глобальный указатель значит - пусть будет указатель. Спасибо за ответ:)
Добрый день! PLC_PRG - перестал исполняется. Компиляция проходит успешно, но данная функция не вызывается.
Вложение 18003
Проект
Просто подумал, что это стандартный случай :)