MATLAB软件®编码器™使您能够生成C或C++代码。默认情况下,代码生成器生成C代码。生成的C++代码可以使用C语言中不可用的功能,使C++代码更可读和更容易使用。
要生成C++代码,请遵循与生成C代码相同的总体工作流步骤。例如,请参见在命令行生成C代码. 从命令行或代码生成配置设置中选择C++语言选项,或从MATLAB编码器应用程序。
假设您想为函数生成C++代码福
接受零输入:
在命令行中,使用-朗:c++
说明符。这个说明符提供了一种快速和简单的生成C++代码的方法。例如,生成C++静态库和C++源代码福
,输入:
编码基因-配置:lib-朗:c++福
在配置对象中,设置塔吉特朗
参数为C++。例如,要生成C++动态库,请输入:
cfg=编码器配置('动态链接库'); cfg.TargetLang公司='C++'; 编码基因-配置cfg公司福
从应用程序,在生成代码步骤,选择C++语言按钮。
要了解利用关键C++语言特性的代码生成,请参阅这些帮助主题:
目标 | 更多信息 |
在MATLAB代码中生成类的C++类。 |
|
生成入口点函数作为C++类中的方法。 |
|
为MATLAB软件包生成C++命名空间。将所有生成的代码放在指定的命名空间中。放置为MathWorks生成的所有代码®在指定的命名空间中编写代码。 |
|
在自定义C++代码和生成代码之间传递动态分配的数组。生成的C++代码通过使用 |
这些示例说明了这些功能的使用:
如果分别生成C和C++代码,对于同一MATLAB函数,检查生成的源代码,则存在实现差异。以下是一些显著的区别:
生成的C++代码包含重载的函数或方法,它们具有相同的名称,但支持多个签名。C语言不支持函数重载。金宝app
生成的C++代码在不同的命名空间层次结构重用相同的标识符名称。例如,相同的类型名我的类型
可以出现在具有顶级命名空间的两个不同命名空间层次结构中我的名字空间1
和我的名字空间2
. C语言不支持名称空间和标识符名称的重用。金宝app
在生成的C代码中,函数头包含#如果定义\uuu cplusplus
包括指定外部“C”
生成的C函数的标识符。编译器和链接器在C代码中使用这些标识符作为C++项目的一部分。
生成C++代码使用.cpp文件
C++文件的文件扩展名H
头文件的扩展名。生成的C代码使用C
和H
扩展。
生成的C++代码使用了一些C++类,静态浇铸
,这比C中的强制转换语法更显式。
生成的代码定义中导
和南
基于C++和C.的不同机制
生成的C++代码使用了自定义数据类型,如将MATLAB类型映射到生成代码中的类型.
生成的C++代码使用的库不同于生成的C代码。例如,C++和C的默认标准数学库在更改标准数学库.