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++类。 |
|
在c++类中生成入口点函数作为方法。 |
|
为MATLAB包生成c++命名空间。将所有生成的代码放在指定的名称空间中。放置为MathWorks生成的所有代码®指定的名称空间中的代码。 |
|
在自定义c++代码和生成的代码之间传递动态分配的数组。生成的c++代码通过使用 |
下面的例子说明了这些功能的用法:
生成的C代码和c++代码之间的其他差异
如果为同一个MATLAB函数分别生成C和c++代码,并检查生成的源代码,则存在实现差异。以下是一些值得注意的区别:
生成的c++代码包含具有相同名称但支持多个签名的重载函数或方法。金宝appC语言不支持函数重载。金宝app
生成的c++代码在不同的名称空间层次结构中重用相同的标识符名称。例如,相同的类型名称
myType
可以出现在具有顶级名称空间的两个不同的名称空间层次结构中吗myNamespace_1
和myNamespace_2
.C语言不支持名称空间和标识符名称的重用。金宝app在生成的C代码中,函数头文件包含
# ifdef __cplusplus
包含指定的守卫外来的“C”
生成的C函数的标识符。编译器和链接器在构建作为c++项目一部分的C代码时使用这些标识符。生成c++代码的用途
. cpp
c++文件的扩展名和.h
头文件的扩展。生成的C代码使用.c
和.h
扩展。生成的c++代码使用了一些c++类型转换,比如
static_cast
,这比C中的强制类型转换语法更显式。生成的代码定义的值
正
和南
基于c++和C的不同机制。生成的c++代码使用自定义数据类型,如将MATLAB类型映射到生成代码中的类型.
生成的c++代码与生成的C代码使用不同的库。例如,c++和C的默认语言标准在改变语言标准.