При наличии лицензии Embedded Coder ® можно использовать классы хранения для управления объявлением и определением глобальной переменной в сгенерированном коде C/C + +.
В контексте создания кода класс хранения является спецификацией, которая определяет объявление и определение переменной в сгенерированном коде. Для генерации кода класс хранения терминов не совпадает со спецификатором класса хранения терминов языка C.
Классы хранения помогают интегрировать сгенерированный код с внешним кодом. Созданную переменную можно сделать видимой для внешнего кода. Можно также сделать переменные, объявленные во внешнем коде, видимыми для созданного кода. Для создания кода из кода MATLAB ® можно использовать только классы хранения с глобальными переменными. Класс хранения определяет:
Размещение файла глобального объявления и определения переменной.
Будет ли глобальная переменная импортирована из внешнего кода или экспортирована для использования внешним кодом.
Для присвоения класса хранения глобальной переменной в коде MATLAB используйте coder.storageClass функция. Только при использовании проекта или объекта конфигурации Embedded Coder для создания библиотек или исполняемых файлов C/C + + генератор кода распознаетcoder.storageClass вызовы.
Синтаксис для coder.storageClass является:
coder.storageClass(global_name, storage_class)
global_name - имя глобальной переменной, указанное как символьный вектор. global_name должен быть константой времени компиляции.
storage_class может быть одним из следующих значений.
| Класс хранения | Описание |
|---|---|
'ExportedGlobal' |
|
'ExportedDefine' | Объявляет переменную с помощью |
'ImportedExtern' | Объявляет переменную как |
'ImportedExternPointer' | Объявляет переменную как |
Классы хранения имеют следующие требования и ограничения:
Назначьте класс хранения глобальной переменной в функции, которая объявляет глобальную переменную. Присвоение класса хранения в нескольких функциях не требуется.
После назначения класса хранения глобальной переменной нельзя назначить другой класс хранения этой глобальной переменной.
Класс хранения нельзя назначить постоянной глобальной переменной.
Глобальная переменная с ExportedDefine класс хранения должен быть скаляром, но не сложным или многословным скаляром. Глобальная переменная должна только считываться и не записываться в код.
Если класс хранения не назначен глобальной переменной, за исключением расположения объявления, переменная ведет себя так, как будто имеет 'ExportedGlobal' класс хранения. Для 'ExportedGlobal' класс хранения, глобальная переменная объявлена в файле . Если глобальная переменная не имеет класса хранения, переменная объявляется в файле entry_point_name.h.entry_point_name_data.h