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