构建使用生成的C / C ++代码的应用程序时,必须提供调用生成的代码的C / C ++主函数。
默认情况下,对于C / C ++源代码,静态库,动态库和可执行文件的代码生成,MATLAB®编码器™生成示例C / C ++主函数。此函数是一个模板,可以帮助您将生成的C / C ++代码合并到您的应用程序中。示例主函数声明并初始化数据,包括动态分配的数据。它调用入口点函数但不使用入口点函数返回的值。要使用示例主函数,将示例主源和头文件复制到“构建文件夹”之外的位置,然后修改新位置中的文件以满足应用程序的要求。
MATLAB编码器控件中的示例main函数生成源文件和头文件例子
构建文件夹的子文件夹。对于C代码生成,它会生成文件c
和main.h
。对于c++代码生成,它生成文件main.cpp
和main.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的第一维度和最多可变的第二维度,最多可变,示例主源文件定义了参数初始化函数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
或者编码器。EmbeddedCodeConfig
对象,设置RunInitializeFCN.
来假
。
在里面MATLAB编码器应用程序,在所有设置选项卡,设置自动运行initialize函数来不
。
如果你做出这个选择,这个例子主要的
函数包含对初始化函数的调用foo_initialize.
。
修改功能主要的
,包括输入和输出主要的
并对入口点的功能,满足您的应用需求。
main.h
对于示例主标题文件main.h
,MATLAB编码器生成以下:
默认,MATLAB编码器还会生成评论main.h
这可以帮助您修改在应用程序中使用的示例main函数。
main.h
使用包括保护器来防止文件内容包括多次。包含后卫包含包含内部的包含文件和函数声明#如果未定义
构造。
main.h
包括呼叫未在其中定义的代码所需的头文件。
main.h
声明在示例主源文件中定义的main函数的函数原型c
或者main.cpp
。