代码生成的数组大小限制
对于代码生成,数组元素的最大数量受代码生成器和目标硬件的限制。
对于使用静态内存分配的固定大小数组和可变大小数组,元素的最大数量是以下两者中的较小者:
intmax('int32')
.目标硬件上 C
int
数据类型可容纳的最大整数。
对于使用动态内存分配的可变大小数组,元素的最大数量是以下两者中的较小者:
intmax('int32')
.目标硬件上 C
int
数据类型可容纳的最大的 2 的幂。
这些限制甚至适用于 64 位平台。
对于固定大小数组,如果元素的数量超出最大值,代码生成器会在编译时报告错误。
对于可变大小数组,如果在运行时元素的数量超出最大值,错误检查行为取决于代码生成目标:
通过使用
codegen
命令、fiaccel
(Fixed-Point Designer) 命令或 MATLAB® Coder™ 运行生成的代码时,如果启用了运行时错误检查,生成的代码会报告错误。默认情况下,对 MEX 代码启用运行时错误检查,对独立 C/C++ 代码禁用运行时错误检查。在仿真 MATLAB Function (Simulink) 模块的过程中,软件会报告错误。为 MATLAB Function 模块生成的独立代码无法报告数组大小冲突。