Как уменьшить количество переменных в ПБ?

На этом форуме Вы можете задать вопросы знатокам программы и автору.
Ответить
igee
Рядовой
Сообщения: 57
Зарегистрирован: 08.06.2016{, 09:15}
Репутация: 0
Откуда: Санкт-Петербург

Как уменьшить количество переменных в ПБ?

#1

Сообщение igee » 10.03.2017{, 10:41}

Всем привет.
    При создании пользовательских блоков, мы добавляем входы и выходы, чтобы связать, переменные, объявленные в проекте с теми, которые используем внутри блоков. Задумал я написать блок инициализации переменных с карты памяти при включении контроллера. Мне надо подгрузить около 30 переменных. Получается, чтобы передать их из пользовательскго блока , мне надо создать 30 "холостых" переменных, которые бы просто связывали функционал блока с проектом. Это не есть хорошо и в отдельных случаях может довести объем памяти, занимаемый переменными,  до критической массы.
    Отсюда логичный вопрос: как избавиться от "холостых" переменных? Я бы сказал, что если бы в настройках проекта была галочка "Сохранять имена переменных при компиляции", то она бы проблему решила. Но сейчас такого нет и я в раздумьях.
Последний раз редактировалось igee 10.03.2017{, 10:53}, всего редактировалось 1 раз.

Аватара пользователя
support
Супермодератор
Сообщения: 1840
Зарегистрирован: 03.01.2018{, 11:45}
Репутация: 690
Откуда: Астрахань
Имя: Сергей
Контактная информация:

Как уменьшить количество переменных в ПБ?

#2

Сообщение support » 10.03.2017{, 12:01}

igee писал(а):Я бы сказал, что если бы в настройках проекта была галочка "Сохранять
имена переменных при компиляции", то она бы проблему решила.
Тут всё не так просто.
Во первых откуда мы знаем что на входе будет переменная? Например в случае использования блока сравнения передача передача значения в блок через вход будет выглядеть так

Код: Выделить всё

ИмяСтуктурыБлока.ИмяВхода=(переменная1<переменной2);
ну и вторая сложность - блоки компилируются в функцию, которой передаётся инстанс структуры привязанный к конкретному блоку. Названия переменных (входы, выходы переменные внутри блока) описанны в структуре. так что использовать переменные проекта нельзя.
Автор программы FLProg.

igee
Рядовой
Сообщения: 57
Зарегистрирован: 08.06.2016{, 09:15}
Репутация: 0
Откуда: Санкт-Петербург

Как уменьшить количество переменных в ПБ?

#3

Сообщение igee » 10.03.2017{, 12:57}

Если блок - это функция, можно ведь добавить разновидность пользовательских блоков CODE для работы именно с переменными проекта. В качестве аргументов использовать ссылки, с которыми будем работать в теле функции, а результатом выполнения функции как раз будет изменение переменных проекта.  


Код: Выделить всё

void user_block(int &project_var) 
{ 
project_var++;
} 
...
int counter= 5; // переменная проекта
user_block (counter);// counter равен 6

Ответить

Вернуться в «Спросить у знатоков»