2(()) - такую конструкцию я не знал. Она значит - до второго (в данном случае последнего) элемента всё пусто?
Вид для печати
2(()) - такую конструкцию я не знал. Она значит - до второго (в данном случае последнего) элемента всё пусто?
Она означает "два пустых элемента". Можно использовать несколько "пустышек" в рамках инициализации одного массива (две пустышки, значения, пустышка, значения, значения, сколько-то еще пустышек и т.д.).
2(()) - это именно для массива структур, для массива чисел, соответственно, было бы 2(0).
И всётки, ST - недоязык. В данном случае - инициализировть отдельные элементы массива, хоть и можно, но... Массив - это прежде всего адресуемое (индексом) пространство ячеек памяти (переменных). Поэтому инициализировать ячейку не так как при обращении, не по индексу, а какими-то неочевидными конструкциями (указывая сколько до неё предшествующих ячеек и чем они заполнены) - это как бы сказать ... неестественно, нелогично, неоптимально, короче через ж...
Есть и ещё недостатки. Например отсутствие меток кода и goto на них. Без goto невозможно сделать легко читаемый и понимаемый код в небольших, но логически сложных процедурах.
Инициализировать по индексу можно в коде - как уже упоминал.
Goto есть (если внезапно действительно нужен именно он, что несколько странно в контексте концепции цикла ПЛК) - читайте в справке про JMP.
По поводу недоязыка - стоит учитывать, что ST разрабатывался в начале 90-х для пользователей без бэкграунда (по крайней мере, без серьезного) в программировании. Естественно, о синтаксическом сахаре особо не задумывались.
Все же понимают, что ST - это не С и т.д., но всё, что можно сделать - понять, принять и простить.
Отлично! JMP есть. Теперь я почти в своей тарелке"! (я ж ассемблерщик)
Я читал мануал к КДС 2.3 - там в ST нет JMP, и думал что в новых КДСах синтаксис не изменился.
Здравствуйте.Нужен совет.Раньше делал пару проектов в КДС2.3 в редакторе LD,проблем не было,но там и на входе и на выходе были дискретные сигналы. Сейчас нужно сделать проект на входе аналоговый сигнал на выходе дискретный.Возможно ли это реализовать в LD и если нет,то какой язык выбрать?
По всей видимости, вам надо сделать так:
Вложение 30153
Ассемблерщик, зачем вам ST, если есть IL?
Если вы напишите программу с переходами на st и потом эту программу будут читать другие люди, то они о вас будут не самого хорошего мнения. В st есть куча способов обойтись без переходов, не ассемблер же. Почитайте, что такое спагетти код, может проникнитесь.
Есть категория компьютеров "тонкий клиент".
Можно ли на них (Windows CE, embedded или Linux) запустить CodeSys Runtime и какие требования по памяти/жесткому диску?
Заранее спасибо