C ++代码生成

MATLAB软件®编码器™使您能够生成C或C++代码。默认情况下,代码生成器生成C代码。生成的C++代码可以使用C语言中不可用的功能,使C++代码更可读和更容易使用。

生成C++代码

要生成C++代码,请遵循与生成C代码相同的总体工作流步骤。例如,请参见在命令行生成C代码. 从命令行或代码生成配置设置中选择C++语言选项,或从MATLAB编码器应用程序。

假设你想生成C ++代码的功能福格ydF4y2Ba接受零个输入:

  • 在命令行中,使用-语言:c++符。这说明符提供了一种快速简便的方法来生成C ++代码。例如,为了生成一个C ++静态库和C ++源代码福格ydF4y2Ba,输入:

    代码发生器-config:LIB-语言:c++福格ydF4y2Ba
  • 在配置对象,设置塔吉朗参数C ++。例如,为了生成一个C ++动态库,输入:

    cfg=编码器配置('动态链接库');cfg.TargetLang公司=“C++”;代码生成器-配置cfg公司福格ydF4y2Ba
  • 从应用程序,在生成代码步骤,选择C++语言按钮。

生成代码中支持的C++语言特性万博1manbetx

您可以生成C++代码,该代码使用C++语言特征的有限子集。

命名空间

通过生成具有命名空间的代码,可以更容易地将代码与其他可能具有相同函数或数据类型名称的源代码集成。使用命名空间时,代码生成器将所有生成的函数和类型定义打包到命名空间中,但包含在tmwtypes.h型以及rtwtypes.h型. 示例主文件和函数未打包到命名空间中。

通过使用指定的命名空间CppNamespace配置对象选项。例如,在名称空间中生成C++代码生成,输入:

cfg=编码器配置('动态链接库');cfg.TargetLang公司=“C++”;cfg.CppNamespace='生成';代码生成器-配置cfg公司福格ydF4y2Ba

要从应用程序中指定命名空间,请在生成代码单步,选择更多设置>所有设置,然后修改C++命名空间字段。有关使用名称空间的示例,请参见集成多个生成的C++代码项目.

类接口

为了获得更多面向对象的代码,可以生成具有类接口的C++代码。入口点函数或函数作为C++类中的方法生成。通过使用CppInterfaceStyle属性。指定生成的类名CppInterfaceClassName公司. 例如:

cfg=编码器配置('库');cfg.GenCodeOnly=true;cfg.TargetLang=“C++”;cfg.CppInterfaceStyle='方法';cfg.CppInterfaceClassName='我的类';代码生成器福格-配置cfg公司-报告-d带类

有关详细信息,请参见用类接口生成C++代码.

代码生成器不直接从一个MATLAB类支持C ++类的产生万博1manbetx。

生成C代码与C++代码的差异

如果分别生成C和C++代码,对于同一MATLAB函数,检查生成的源代码,则存在实现差异。这些是一些显著的区别:

  • 在生成的C代码中,函数头包含#ifdef_uuucpluplus公司包括指定为extern “C”生成的C函数的标识符。编译器和链接器在C代码中使用这些标识符作为C++项目的一部分。

  • 生成C++代码使用.cpp公司C++文件的文件扩展名。H头文件的扩展名。生成的C代码使用。C。H分机。

  • 生成的C ++代码使用一些C ++铸件,如静态铸造,这比C中的强制转换语法更为明确。

  • 生成的代码定义天道酬勤基于C++和C.的不同机制

  • 生成的C++代码使用了自定义数据类型,如MATLAB映射类型类型生成的代码.

  • 生成的C++代码使用的库不同于生成的C代码。例如,C++和C的默认标准数学库在更改标准数学库.

另见

相关话题