Мне нужно создать определенное количество пар struct type, которые в дальнейшем будут использоваться как const и имеет практически тот же набор значений, но уменьшенный вдвое, примерно так (с учетом константы n):
TYPE ADDR_1 :
STRUCT
PARAMETER_A: INT :=0;
PARAMETER_B: INT :=2;
PARAMETER_C: INT :=4;
- - -
PARAMETER_n: INT :=n; (* being n any number *)
END_STRUCT
END_TYPE
И корреляционная пара:
TYPE ADDR_2 :
STRUCT
PARAMETER_X: INT :=0/2;
PARAMETER_Y: INT :=2/2;
PARAMETER_Z: INT :=4/2;
- - -
PARAMETER_n/2: INT :=n/2; (* being n any number *)
END_STRUCT
END_TYPE
Создавая обе структуры по отдельности, это работает очень хорошо, я использую их для создания массива CONST, который будет использоваться в SWITCH...CASE em> оператор, который, как мы хорошо знаем, принимает только константы в их индексах, а не переменные.
Однако каждое изменение, сделанное в одной структуре, должно быть реорганизовано в другой структуре, что действительно небезопасно с точки зрения разработки «лучших практик».
Проблема, с которой я столкнулся сейчас, заключается в том, что если я создаю значения CONST в списке глобальных переменных (GVL), они не имеют приоритета на временной шкале компиляции, я имею в виду, структуры оцениваются в первую очередь.
Другим вариантом было использование Pragmas, но он работает только в определенной области, что означает, что он не будет действовать как «глобальные параметры».
Я просто хотел определить каждый вышеуказанный параметр перед компиляцией таким образом, чтобы я мог определить только один раз, разделив один на другой на 2.