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