主要内容

C ++代码生成

MATLAB®编码员™代码生成程序默认生成C代码。生成的C++代码可以使用C++语言中不可用的功能,C++代码更易于阅读和使用。

生成C++代码

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

假设您要为函数生成C ++代码接受零输入:

  • 在命令行中,使用-朗:c++说明书。此说明符提供了一种快速且简单的方法来生成C ++代码。例如,要生成C ++静态库和C ++源代码,输入:

    编码基因-config:lib-朗:c++
  • 在配置对象中,设置塔吉特朗参数到C ++。例如,要生成C ++动态库,请输入:

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

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

要了解使用密钥C ++语言功能的代码生成,请参阅这些帮助主题:

目标 更多信息

在MATLAB代码中生成类的C++类。

生成MATLAB类的C++类

生成切入点函数作为C ++类中的方法。

用类接口生成C++代码

为Matlab包生成C++命名空间。将所有生成的代码放置在指定的命名空间中。®在指定的命名空间中编写代码。

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

在C++ C++代码和生成代码之间传递动态分配的数组。编码器::数组类模板。生成的代码提供了一个简单的API,您可以用来与此模板进行交互。

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

这些示例说明了这些功能的使用:

生成C代码与C++代码之间的额外差异

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

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

  • 生成的C++代码在不同的命名空间层次结构上重用相同的标识符名称。我的风格可以出现在具有顶级命名空间的两个不同命名空间层次结构中我的名字空间1我的名字空间2. C语言不支持名称空间和标识符名称的重用。金宝app

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

  • 生成C++代码使用.cppC++文件的文件扩展名。H头文件的扩展名。生成的C代码使用。C。H扩展。

  • 生成的C ++代码使用一些C ++演员,如静态浇铸,比C中的强制转换语法更显式。

  • 生成的代码定义了INF.基于C++和C.的不同机制

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

  • 生成的C++代码使用的库不同于生成的C++代码。更改标准数学库.

另见

相关话题