主要内容

c++代码生成

MATLAB®编码器™允许您生成C或c++代码。代码生成器默认生成C代码。生成的c++代码可以使用C语言中不可用的功能,这可以使c++代码更具可读性和更易于使用。

生成c++代码

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

假设您想为一个函数生成c++代码喷火它接受零输入:

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

    codegen配置:自由朗:c++喷火
  • 在配置对象中设置TargetLang参数转换为c++。例如,要生成一个c++动态库,输入:

    CFG = coder.config(“dll”);cfg。TargetLang =“c++”;codegen配置cfg喷火
  • 从应用程序,在生成代码步骤,选择c++语言按钮。

生成代码中支持的c++语言特性金宝app

要了解利用关键c++语言特性的代码生成,请参考以下帮助主题:

目标 更多的信息

为MATLAB代码中的类生成c++类。

为MATLAB类生成c++类

在c++类中生成入口点函数作为方法。

生成带有类接口的c++代码

为MATLAB包生成c++命名空间。将所有生成的代码放在指定的名称空间中。放置为MathWorks生成的所有代码®指定的名称空间中的代码。

将生成的c++代码组织到命名空间中

在自定义c++代码和生成的代码之间传递动态分配的数组。生成的c++代码通过使用编码器:数组类模板。生成的代码提供了一个简单的API,您可以使用它与这个模板进行交互。

在生成函数接口中使用动态分配的c++数组

下面的例子说明了这些功能的用法:

生成的C代码和c++代码之间的其他差异

如果为同一个MATLAB函数分别生成C和c++代码,并检查生成的源代码,则存在实现差异。以下是一些值得注意的区别:

  • 生成的c++代码包含具有相同名称但支持多个签名的重载函数或方法。金宝appC语言不支持函数重载。金宝app

  • 生成的c++代码在不同的名称空间层次结构中重用相同的标识符名称。例如,相同的类型名称myType可以出现在具有顶级名称空间的两个不同的名称空间层次结构中吗myNamespace_1myNamespace_2.C语言不支持名称空间和标识符名称的重用。金宝app

  • 在生成的C代码中,函数头文件包含# ifdef __cplusplus包含指定的守卫外来的“C”生成的C函数的标识符。编译器和链接器在构建作为c++项目一部分的C代码时使用这些标识符。

  • 生成c++代码的用途. cppc++文件的扩展名和.h头文件的扩展。生成的C代码使用.c.h扩展。

  • 生成的c++代码使用了一些c++类型转换,比如static_cast,这比C中的强制类型转换语法更显式。

  • 生成的代码定义的值基于c++和C的不同机制。

  • 生成的c++代码使用自定义数据类型,如将MATLAB类型映射到生成代码中的类型

  • 生成的c++代码与生成的C代码使用不同的库。例如,c++和C的默认语言标准在改变语言标准

另请参阅

相关的话题