Мне нужно создать определенное количество 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 оператор - который, как мы хорошо знаем, принимает только константы по своим индексам, а не переменные.
Однако каждое изменение, внесенное в одну структуру, должно быть реорганизованным в другую структуру, в действительности это небезопасный подход при разработке «лучших практик».
Проблема, с которой я сейчас сталкиваюсь, заключается в том, что если я создам CONST значений в глобальном списке переменных (GVL), он не имеет приоритета во временной шкале компиляции, я имею в виду, структурирует сначала оценивается.
Другой вариант был с использованием Pragmas , но он работает только в пределах определенной c области действия, что означает, что он не будет действовать как «глобальный». параметры '.
Я просто хотел определить каждый параметр выше перед компиляцией таким образом, чтобы я мог определить только один раз, разделив один на другой на 2.