当您构建一个使用生成的C/ c++代码的应用程序时,必须提供一个C/ c++主函数来调用生成的代码。
默认情况下,对于C/ c++源代码、静态库、动态库和可执行文件的代码生成,马铃薯®编码器™生成一个C/ c++ main函数示例。这个函数是一个模板,可以帮助您将生成的C/ c++代码合并到您的应用程序中。示例主函数声明并初始化数据,包括动态分配的数据。它调用入口点函数,但不使用入口点函数返回的值。要使用示例main函数,请将示例主源文件和头文件复制到build文件夹外的一个位置,然后修改新位置中的文件,以满足应用程序的要求。
Matlab编码器为示例主函数生成源和头文件例子
生成文件夹的子文件夹。对于C代码生成,它生成文件main.c
和主要
.对于C ++代码生成,它会生成文件main.cpp.
和主要
.
main.c
或main.cpp.
对于示例主要源文件main.c
或main.cpp.
那Matlab编码器生成以下章节:
默认情况下,Matlab编码器还在示例主源文件中生成注释,可以帮助您修改用于在应用程序中使用的示例主函数。
本节包括呼叫不在示例主要源文件中的代码所需的头文件。如果在修改示例主源文件时调用外部函数,请包括任何其他所需的头文件。
本节声明在示例主源文件中定义的参数初始化和入口点函数的函数原型。修改函数原型以匹配在函数定义中所做的修改。为示例主源文件中定义的函数声明新的函数原型。
本节为每个数据类型定义初始化函数,即入口点函数用作参数。参数初始化函数将参数的大小初始化为默认值和数据的值为零。然后函数返回初始化数据。更改这些大小和数据值以满足应用程序的要求。
用于具有尺寸尺寸的参数< dimSizes >
和MATLAB C / C ++数据类型< baseType >
,示例主源文件定义了一个名为argInit_ < dimSizes > _ < baseType >
.例如,对于使用MATLAB类型的数据的5×5阵列,示例主要源文件定义了参数初始化功能argInit_5x5_real_T
.
Matlab编码器改变参数初始化函数的名称,如下所示:
如果任何一个维度是可变大小的,Matlab编码器指定这些尺寸的大小为d <最大尺寸>
, 在哪里
是该维度的最大大小。例如,对于具有MATLAB类型的数据double的数组,其第一维静态大小为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,它声明和命名变量argc.
和argv.
却使它们化为乌有。如果输出语言是c++,生成的示例main声明变量,但不命名变量argc.
和argv.
.
调用一次每个入口点函数。
调用终止函数foo_terminate.
,这是第一个MATLAB入学点函数的命名Foo
为代码生成声明。即使在函数中调用了多个入口点函数,也只调用一次terminate函数主要
.
返回零。
默认情况下,示例主要
函数不调用初始化函数foo_initialize
.在生成的C/ c++入口点函数的开头,代码生成器包含对初始化函数的调用。生成的代码还包括检查,以确保即使有多个入口点函数,初始化函数也只被自动调用一次。
您可以选择不包含生成的入口点函数中的初始化函数的调用。要使此选择,请执行以下操作之一:
在一个编码器。CodeConfig
或Coder.embeddedCodeConfig
对象,集合RunInitializeFcn
至错误的
.
在Matlab编码器应用程序,所有设置标签,设置自动运行初始化功能至没有
.
如果你做了这个选择主要
函数包括对初始化功能的调用foo_initialize
.
修改函数主要
,包括输入和输出主要
其中的入学点函数,以满足您的应用程序的要求。
主要
对于示例的主头文件主要
那Matlab编码器生成以下内容:
默认情况下,Matlab编码器也会在主要
这可以帮助您修改用于在应用程序中使用的示例主函数。
主要
使用包含保护来防止文件的内容被多次包含。控件中的include保护包含include文件和函数声明#ifndef.
构造。
主要
包括调用未在其中定义的代码所需的头文件。
主要
声明示例主源文件中定义的主要函数的函数原型main.c
或main.cpp.
.