Генерация кода С++

MATLAB® Coder™ включает, вы любому генерируете код C or C++. Генератор кода производит код С по умолчанию. Сгенерированный Код С++ может использовать функциональность, не доступную на языке C, который может сделать Код С++ более читаемым и легче использовать.

Сгенерируйте код С++

Чтобы сгенерировать Код С++, выполните те же полные шаги рабочего процесса, которые вы используете, чтобы сгенерировать код С. Например, смотрите, Генерируют код С в Командной строке. Выберите опцию языка C++ из командной строки, или с параметром конфигурации генерации кода, или из приложения MATLAB Coder.

Предположим, что вы хотите сгенерировать Код С++ для функционального foo это принимает нулевые входные параметры:

  • Из командной строки используйте -lang:c++ спецификатор. Этот спецификатор обеспечивает быстрый и простой способ сгенерировать Код С++. Например, чтобы сгенерировать C++ статическая библиотека и исходный код C++ для foo, Введите:

    codegen -config:lib -lang:c++ foo
    
  • В объекте настройки, набор TargetLang параметр на C++. Например, чтобы сгенерировать C++ динамическая библиотека, введите:

    cfg = coder.config('dll');
    cfg.TargetLang = 'C++'; 
    codegen -config cfg foo 
    
  • Из приложения, на шаге Generate Code, нажимают кнопку языка C++.

Функции языка C++, поддерживавшие в сгенерированном коде

Чтобы узнать о генерации кода, которая использует ключевые функции языка C++, обратитесь к этим темам справки:

ЦельБольше информации

Сгенерируйте классы C++ для классов в вашем коде MATLAB.

Сгенерируйте классы C++ для классов MATLAB

Сгенерируйте функции точки входа как методы в классе C++.

Сгенерируйте код С++ с интерфейсом класса

Сгенерируйте пространства имен C++ для пакетов MATLAB. Поместите весь сгенерированный код в пространство имен, которое вы задаете. Поместите весь код, сгенерированный для MathWorks® код в пространстве имен, которое вы задаете.

Организуйте сгенерированный код С++ в пространства имен

Передача динамически выделила массивы между вашим пользовательским Кодом С++ и сгенерированным кодом. Сгенерированный Код С++ реализует такие массивы при помощи coder::array шаблон класса. Сгенерированный код обеспечивает простой API, который можно использовать, чтобы взаимодействовать с этим шаблоном.

Использование динамически выделенные массивы C++ в сгенерированных функциональных интерфейсах

Эти примеры иллюстрируют использование этих функциональностей:

Дополнительные различия между сгенерированным кодом C и кодом С++

Если вы отдельно генерируете C и Код С++ для той же функции MATLAB, и смотрите сгенерированный исходный код, то существуют различия в реализации. Это некоторые заметные различия:

  • Сгенерированный Код С++ содержит перегруженные функции или методы, которые имеют то же имя, но поддерживают несколько подписей. Язык C не поддерживает перегрузку функций.

  • Сгенерированный Код С++ снова использует то же имя идентификатора через различные иерархии пространства имен. Например, то же имя типа myType может появиться в двух различных иерархиях пространств имен с пространствами имен верхнего уровня myNamespace_1 и myNamespace_2. Язык C не поддерживает пространства имен и такое повторное использование имен идентификатора.

  • В сгенерированном коде C функциональные заголовки содержат #ifdef __cplusplus включайте защиту, которая задает extern "C" идентификатор для сгенерированных функций C. Компилятор и компоновщик используют эти идентификаторы в создании кода С как часть проекта C++.

  • Сгенерированный Код С++ использует .cpp расширения файла для файлов C++ и .h расширения для заголовочных файлов. Сгенерированный код C использует .c и .h расширения.

  • Сгенерированный Код С++ использует некоторые броски C++, как static_cast, которые являются более явными, чем синтаксис кастинга в C.

  • Сгенерированный код задает значения для Inf и NaN на основе различных механизмов для C++ и C.

  • Сгенерированный Код С++ использует пользовательские типы данных как описано в Отображении Типов MATLAB к Типам в Сгенерированном коде.

  • Сгенерированный Код С++ пользуется различными библиотеками, чем сгенерированный код C. Например, стандарт языка по умолчанию для C++ и C описан в Изменении Стандарт Языка.

Смотрите также

Похожие темы