主要内容

表示C共享库函数中的结构参数

结构参数的要求

当你通过MATLAB时®构造为外部库函数:

  • 每个MATLAB字段名必须与库结构定义中的字段名匹配。字段名区分大小写。

  • MATLAB结构不能包含不在库结构定义中的字段。

  • 如果MATLAB结构包含的字段少于库结构中定义的字段,则MATLAB将未定义字段设为零。

您不需要匹配数字字段的数据类型。的calllib函数将转换为正确的数字类型。

查找结构字段名

要确定结构字段的名称和数据类型,您可以:

  • 请参阅库文档。

  • 查看库头文件中的结构定义。

  • 使用libstruct函数。

通过结构的策略

MATLAB自动将结构转换为该结构类型的库定义。在大多数情况下,例如处理小型结构时,这是可行的。

但是,在处理传递大型结构的重复调用时,在调用外部函数之前,要手动转换结构。只需在开始时转换一次结构数据,而不是在每次函数调用时转换一次,就可以节省处理时间。如果转换结构的字段占用的空间小于原始MATLAB结构,还可以节省内存。

要手动转换,请调用libstruct函数创建libstruct对象.虽然它是一个对象,但它的行为类似于MATLAB结构。对象的字段派生自外部指定的结构类型。

另请参阅

相关的例子

更多关于