Создание кода для констант в структурах и массивах
Генератор кода не распознает постоянные поля структуры или элементы массива в следующих случаях:
Поля или элементы назначаются внутри управляющих конструкций
В следующем коде генератор кода распознает, что поля структуры s.a и s.b являются константами.
Если какое-либо поле структуры назначено внутри управляющей конструкции, генератор кода не распознает поля констант. Это ограничение также применимо к массивам с постоянными элементами. Рассмотрим следующий код:
Генератор кода не распознает, что s.a и s.b являются постоянными. Если включен параметр «Переменный размер», y рассматривается как массив переменного размера. Если переменный размер отключен, генератор кода сообщает об ошибке.
Константы присваиваются элементам массива с помощью некалярного индексирования
В следующем коде генератор кода распознает, что a(1) является постоянной.
В следующем коде, потому что a(1) назначается с помощью некалебарной индексации, генератор кода не распознает, что a(1) является постоянной.
Функция возвращает структуру или массив, который имеет постоянные и непостоянные элементы
Для структуры вывода, которая имеет как постоянные, так и непостоянные поля, генератор кода не распознает постоянные поля. Это ограничение также применимо к массивам, которые имеют постоянные и непостоянные элементы. Рассмотрим следующий код:
Поскольку create_structure возвращает структуру s который имеет одно постоянное поле и одно непостоянное поле, генератор кода не распознает, что s.a является постоянной. coder.const вызов завершается неуспешно, потому что s.a не является постоянной.