Структуры
Структуры
В объявлении DUT2 можно создать массив из структуры:
Arr : Array [0..100] OF DUT1;
Пробовал объявлять массивы из структур в глобальных переменных - не получается.
Вопрос:
Возможно ли как-то это сделать в объявлении глобальной переменной?
Зачем:
Чтобы уменьшить кол-во вложенных элементов при обращении к структурной переменной массива.
Arr : Array [0..100] OF DUT1;
Пробовал объявлять массивы из структур в глобальных переменных - не получается.
Вопрос:
Возможно ли как-то это сделать в объявлении глобальной переменной?
Зачем:
Чтобы уменьшить кол-во вложенных элементов при обращении к структурной переменной массива.
Re: Структуры
попробуйте присвоить каждому символу внутри массива реальные регистры/маркеры, а не "авто".
я только начал осваивать AS300 а уже наткнулся, что многие обычные для DVP функции не работают в "авто" режиме. им обязательно нужно руками присваивать реальные регистры/маркеры, и только тогда начинают работать, а авто присваивание больше не работает, что доставляет нехилые такие неудобства, особенно для локальных переменных.
я только начал осваивать AS300 а уже наткнулся, что многие обычные для DVP функции не работают в "авто" режиме. им обязательно нужно руками присваивать реальные регистры/маркеры, и только тогда начинают работать, а авто присваивание больше не работает, что доставляет нехилые такие неудобства, особенно для локальных переменных.
Re: Структуры
Попробовал создать структуры и обратиться к ним
TYPE DUT_0 :
STRUCT
Elem1 : array[0..10] of int;
END_STRUCT
END_TYPE
TYPE DUT_1 :
STRUCT
Elem2 :array [0..7] of DUT_0;
END_STRUCT
END_TYPE
В эмуляторе команды MOV с ними работают.
Кстати, автоматическая адресация под структуры работает.
Если что то не ясно, то для начало нужно почитать/полистать help/manual, раздел 8.2
TYPE DUT_0 :
STRUCT
Elem1 : array[0..10] of int;
END_STRUCT
END_TYPE
TYPE DUT_1 :
STRUCT
Elem2 :array [0..7] of DUT_0;
END_STRUCT
END_TYPE
В эмуляторе команды MOV с ними работают.
Кстати, автоматическая адресация под структуры работает.
Если что то не ясно, то для начало нужно почитать/полистать help/manual, раздел 8.2
Re: Структуры
Пролистано и почитано.
При объявлении структуры можно создать массив из структур.
В Global и Local Symbols нет возможности создания массивов из структур.
Почему в Symbols это не доступно? Обязательная опция для работы со структурами.
Например при добавлении этой опции в Symbols код мог бы выглядеть вот так:
(в цикле)
elem.Color:=5;
elem.Value:=234;
а сейчас это выглядит так:
elem.n.Color:=5;
elem.n.Value:=234;
n - лишний элемент в структуре
При объявлении структуры можно создать массив из структур.
В Global и Local Symbols нет возможности создания массивов из структур.
Почему в Symbols это не доступно? Обязательная опция для работы со структурами.
Например при добавлении этой опции в Symbols код мог бы выглядеть вот так:
(в цикле)
elem.Color:=5;
elem.Value:=234;
а сейчас это выглядит так:
elem.n.Color:=5;
elem.n.Value:=234;
n - лишний элемент в структуре
Re: Структуры
В LD они создаются и работают.GoGo писал(а): В Global и Local Symbols нет возможности создания массивов из структур.
Вы, видимо, имеете ввиду ST (структурный текст). Я с ним не работаю.GoGo писал(а): Почему в Symbols это не доступно?
Re: Структуры
Вы не правы, создаются структуры, а не symbols.tvent писал(а): В LD они создаются и работают.
LD и ST - роли не играет, переменные и там и там используются одни и те же .
Re: Структуры
GoGo писал(а):Вы не правы, создаются структуры, а не symbols.tvent писал(а): В LD они создаются и работают.
Re: Структуры
Вижу, что вы создали всего ОДНУ структурную переменную STR1.
Теперь вижу, что в Type нельзя вставить ARRAY и получить вот это: STR[0].el...STR[n].el
Теперь вижу, что в Type нельзя вставить ARRAY и получить вот это: STR[0].el...STR[n].el
Re: Структуры
Но можно вот это, где EL2 array [0..5] of DUT_0;GoGo писал(а): вижу, что в Type нельзя вставить ARRAY и получить вот это: STR[0].el...STR[n].el
Или это, где EL3 array [0..3] of DUT_1
- Вложения
-
- Снимок экрана (19).png (63.73 КБ) 1353 просмотра
-
- Снимок экрана (18).png (60.05 КБ) 1353 просмотра
Re: Структуры
Да, к этому уже пришел. Так и делаю.