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++ для классов в вашем коде MATLAB. | |
Сгенерируйте функции точки входа как методы в классе C++. | |
Сгенерируйте пространства имен C++ для пакетов MATLAB. Поместите весь сгенерированный код в пространство имен, которое вы задаете. Поместите весь код, сгенерированный для кода MathWorks® в пространстве имен, которое вы задаете. | |
Передача динамически выделила массивы между вашим пользовательским Кодом С++ и сгенерированным кодом. Сгенерированный Код С++ реализует такие массивы при помощи | Использование динамически выделенные массивы 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 описана в Изменении Стандартная Математическая Библиотека.