结构生成的例子C/ c++的主要功能

当你建立生成采用C / C ++代码的应用程序,你必须提供一个C / C ++主调用生成的代码功能。

默认情况下,用于代码生成的C / C ++源代码,静态库,动态库和可执行,MATLAB®编码器™生成的一例的C / C ++主要功能。此功能是一个模板,可以帮助你合并生成的C / C ++代码到你的应用程序。的例子的主要功能声明并初始化数据,包括动态分配的数据。它调用的入口点函数,但不使用值的入口点函数返回。要使用示例主要功能,主要的源文件和头文件复制的示例中生成文件夹的位置之外,然后修改在新位置的文件,以满足您的应用需求。

MATLAB编码器类中的示例主函数生成源文件和头文件例子子文件夹中生成文件夹中。对于C代码生成,生成的文件cmain.h。对于c++代码生成,它生成文件main.cppmain.h

该文件的内容c要么main.cpp

对于示例主源文件c要么main.cpp,MATLAB编码器产生了以下部分:

默认情况下,MATLAB编码器还在示例主源文件中生成注释,这些注释可以帮助您修改示例主函数以在应用程序中使用。

包括文件

本节包括调用示例主源文件中没有的代码所需的头文件。如果在修改示例主源文件时调用外部函数,则需要包括任何其他头文件。

函数声明

该段说明了示例主源文件中定义的参数的初始化和入口点函数的函数原型。修改函数原型相匹配的修改您在函数定义作出。申报功能的新的函数原型,你的一例的主要源文件中定义。

参数初始化函数

本节为入口点函数用作参数的每个数据类型定义一个初始化函数。参数初始化函数将参数的大小初始化为默认值,将数据的值初始化为零。然后函数返回初始化的数据。更改这些大小和数据值以满足应用程序的要求。

对于具有大小尺寸的参数以及MATLAB的C/ c++数据类型<基本类型>中,例如主源文件定义了名称的初始化函数argInit_ _ <碱基类型>。例如,对于一个具有MATLAB类型double数据的5×5数组,示例主源文件定义了参数初始化函数argInit_5x5_real_T

MATLAB编码器修改参数初始化函数的名称如下:

  • 如果有任何尺寸是可变大小,MATLAB编码器指定这些维度的大小为d ,在那里<最大尺寸>是,尺寸的最大尺寸。例如,对于用MATLAB的数据数组类型双静态大小为2的第一维度,并且可以在尺寸高达10变化的第二尺寸,示例性主源文件定义了参数初始化函数argInit_2xd10_real_T

  • 如果有任何尺寸是无界的,MATLAB编码器指定这些维度的大小为无限

  • 如果初始化函数的返回类型为emxArray,MATLAB编码器将函数定义为返回指向的指针emxArray

  • 如果初始化函数名的长度超过了配置设置中为函数名设置的最大字符数,MATLAB编码器在函数名的前面添加标识符。MATLAB编码器然后截断函数名称为标识符长度的最大字符允许数量。

    请注意

    默认情况下,为生成的标识符允许的最大字符数是31。属性指定最大标识符长度的值集MATLAB编码器应用程序,选择最大标识符长度价值代码的外观“代码生成设置”的选项卡。若要使用命令行接口指定最大标识符的值集,请更改MaxIdLength配置对象设置。

入口点函数

本节为每个MATLAB入口点函数定义一个函数。对于MATLAB函数foo.m,示例主源文件定义了一个入口点函数main_foo。这个函数创建变量并调用C/ c++源函数的数据初始化函数foo.c要么foo.cpp需要。它调用这个C / C ++源代码的功能,但不会返回结果。修改main_foo使所要求的应用程序需要的输入和输出的回报。

主功能

本节定义了主要实现以下功能的函数:

  • 如果你的输出语言是C,它声明和名称的变量命令行参数个数argv但他们强制转换为无效。如果你的输出语言是C ++,生成的一例的主要声明,但不名,变量命令行参数个数argv

  • 调用每个入口点函数一次。

  • 调用终止函数foo_terminate,这是以MATLAB的第一个入口点函数命名的喷火申报代码生成。调用终止函数只有一次,即使你有所谓的多重功能的入口点函数主要

  • 返回零。

默认情况下是这个示例主要函数不调用初始化函数foo_initialize。代码生成器包括在所生成的C / C ++的入口点函数开始到初始化函数的调用。生成的代码还包括检查,以确保作出这样的初始化功能是自动调用一次,即使有多个入口点函数。

可以选择不将对初始化函数的调用包含在生成的入口点函数中。要做出这个选择,请执行以下操作之一:

  • 在一个coder.CodeConfig要么coder.EmbeddedCodeConfig对象,设置RunInitializeFcn

  • 在里面MATLAB编码器应用程序,在所有设置选项卡,设置自动运行初始化函数没有

如果你做出这个选择,示例主要函数包括对初始化函数的调用foo_initialize

看到使用生成的初始化和终止功能

修改功能主要,包括的输入和输出主要以及入口点函数,以满足您的应用要求。

该文件的内容main.h

对于示例主头文件main.h,MATLAB编码器生成以下:

默认情况下,MATLAB编码器也产生在评论main.h这可以帮助您修改示例main函数以在应用程序中使用。

包括警卫

main.h使用一个包括防护件,以防止文件的内容被包含多次。该包括后卫包含包括内的文件和函数声明#如果未定义构造。

包括文件

main.h包括需要到未在其内定义的呼叫码的头文件。

函数声明

main.h为示例主源文件中定义的主函数声明函数原型c要么main.cpp

相关的例子

更多关于