Main Content

ssSetDataTypeZero

Set the zero representation of a data type

Syntax

int_T ssSetDataTypeZero(SimStruct *S, DTypeId id, void* zero)

Arguments

S

SimStruct that represents an S-Function block.

id

ID of the data type.

zero

Zero representation of the data type specified by id.

Returns

1 (true) if successful. Otherwise, returns 0 (false) and reports an error.

Description

Sets the zero representation of the data type specified by id to zero if id is valid, the size of the data type has been set, and the zero representation has not already been set. The zero representation of a custom data type is the value that represents zero for that data type. Otherwise, this macro fails and reports an error. Because this macro reports any error that occurs, you do not need to use ssSetErrorStatus to report the error. See Configure Custom Data Types for more information on registering custom data types.

Note

This macro makes a copy of the zero representation of the data type for the Simulink® engine to use. Thus, your S-function does not have to maintain the original in memory.

For more information about using custom data types in S-functions, see Configure Custom Data Types.

Languages

C, C++

Examples

The following example registers and sets the size and zero representation of a custom data type named myDataType.

typedef struct{
	int8_T   a;
	uint16_T b;
}myStruct;

int_T    status;
DTypeId  id;
myStruct tmp;      

id = ssRegisterDataType(S, "myDataType");
if(id == INVALID_DTYPE_ID) return;

status = ssSetDataTypeSize(S, id, sizeof(tmp));
if(status == 0) return;

tmp.a = 0;
tmp.b = 1;
status = ssSetDataTypeZero(S, id, &tmp);
if(status == 0) return;

Version History

Introduced before R2006a