Main Content

Remove internal data zero initialization

Control generation of Initialization code for internal work structures, such as block states and block outputs, to zero

Model Configuration Pane: Code Generation / Optimization

Description

The Remove internal data zero initialization parameter specifies whether to generate initialization code for internal work structures, such as block states and block outputs, to zero.

Settings

on | off
On

Does not generate code that initializes internal work structures to zero.

During startup, standards-compliant C and C++ compilers initialize global data to zero, eliminating the need to include zero initialization code for this data in the generated code. Standards-compliant compilers do not necessarily initialize dynamically allocated data and local variables to zero. Before leaving the Remove internal data zero initialization parameter selected, confirm that your model meets these conditions:

  • If your compiler is not standards-compliant, confirm that it initializes global data to zero.

  • If you set the Code Interface packaging to Reusable function or C++ class, confirm that data is either statically allocated or that dynamically allocated data is initialized to zero.

Generated code initializes data that you specify in an Initialize Function block, even if you select this parameter.

Off

Generates code that initializes internal work structures to zero.

Generated code does not initialize data whose storage class has imported scope, unless you specify that data in an Initialize Function block.

If you set the Code interface packaging parameter to Nonreusable function, by default, the Remove internal data zero initialization check box is selected and ZeroInternalMemoryAtStartup is set to 'off'.

If you set the Code interface packaging parameter to Reusable function or C++ Class, by default, the Remove internal data zero initialization check box is cleared and ZeroInternalMemoryAtStartup is set to 'on'.

The parameter check box is cleared ( ZeroInternalMemoryAtStartup is 'on' and read-only) for a model in which the Code interface packaging parameter is set to C++ class and the Use dynamic memory allocation for model initialization parameter is selected. If you set the Code interface packaging parameter to Reusable function and select the Use dynamic memory allocation for model block instantiation parameter, the parameter check box is cleared ( ZeroInternalMemoryAtStartup is set to 'on').

Recommended Settings

ApplicationSetting
DebuggingNo impact
TraceabilityNo impact
EfficiencyOn (GUI), off (command line), (execution, ROM), No impact (RAM)
Safety precautionNo recommendation

Programmatic Use

Parameter: ZeroInternalMemoryAtStartup
Type: character vector
Value: 'off' (UI Setting On) | 'on' (UI Setting Off)
Default: 'off'

Version History

Introduced in R2007a