exponenta event banner

Классы хранения для генерации кода из кода MATLAB

При наличии лицензии 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'
  • Определяет переменную в Variable Definitions раздел файла C entry_point_name.c.

  • Объявляет переменную как extern в Variable Declarations раздел файла заголовка entry_point_name.h

  • Инициализирует переменную в функции entry_point_name_initialize.h.

'ExportedDefine'

Объявляет переменную с помощью #define директива в Exported data define раздел файла заголовка entry_point_name.h.

'ImportedExtern'

Объявляет переменную как extern в Variable Declarations раздел файла заголовка entry_point_name_data.h. Внешний код должен содержать определение переменной.

'ImportedExternPointer'

Объявляет переменную как extern указатель в Variable Declarations раздел файла заголовка entry_point_name_data.h. Внешний код должен определять допустимую переменную указателя.

Классы хранения имеют следующие требования и ограничения:

  • Назначьте класс хранения глобальной переменной в функции, которая объявляет глобальную переменную. Присвоение класса хранения в нескольких функциях не требуется.

  • После назначения класса хранения глобальной переменной нельзя назначить другой класс хранения этой глобальной переменной.

  • Класс хранения нельзя назначить постоянной глобальной переменной.

  • Глобальная переменная с ExportedDefine класс хранения должен быть скаляром, но не сложным или многословным скаляром. Глобальная переменная должна только считываться и не записываться в код.

Если класс хранения не назначен глобальной переменной, за исключением расположения объявления, переменная ведет себя так, как будто имеет 'ExportedGlobal' класс хранения. Для 'ExportedGlobal' класс хранения, глобальная переменная объявлена в файле entry_point_name.h. Если глобальная переменная не имеет класса хранения, переменная объявляется в файле entry_point_name_data.h.

См. также

Связанные темы