ssSetDWorkRTWIdentifier

Укажите идентификатор, используемый для объявления вектора DWork в коде, сгенерированном из связанной S-функции

Синтаксис

char_T *ssSetDWorkRTWIdentifier(SimStruct *S, int_T vector, char_T *id)

Аргументы

S

SimStruct, представляющий блок S-Function.

vector

Индекс рабочего вектора, где индекс является одним из 0, 1, 2, ... ssGetNumDWork(S)-1.

id

Идентификатор вектора DWork. Это должно указывать на постоянную память.

Возвраты

Указатель (char_T *) на Simulink® Coder™ идентификатор, введенный в id.

Описание

Задает id как идентификатор, используемый в коде, сгенерированном продуктом Simulink Coder, чтобы объявить вектор DWork, заданный как vector. Для получения дополнительной информации об использовании векторов DWork, смотрите Как использовать векторы DWork.

Эта функция должна вызываться только из mdlInitializeSizes или mdlSetWorkWidths функций.

Языки

C, C++

Пример

Смотрите S-функцию sfun_rtwdwork.c используется в sfcndemo_sfun_rtwdwork.

Следующий фрагмент mdlInitializeSizes метод инициализирует вектор DWork и все связанные с ним свойства генерации кода.

ssSetNumDWork(S, 1);
ssSetDWorkWidth(S, 0, 1);
ssSetDWorkDataType(S, 0, SS_DOUBLE);

/* Identifier; free any old setting and update */
id = ssGetDWorkRTWIdentifier(S, 0);
if (id != NULL) {
    free(id);
}
id = malloc(80);
mxGetString(ID_PARAM(S), id, 80);
ssSetDWorkRTWIdentifier(S, 0, id);

Следующий фрагмент mdlTerminate метод освобождает выделенную для идентификатора память, чтобы предотвратить утечки памяти.

char* id;
char* tq;

/* Identifier; free any old setting and update */
id = ssGetDWorkRTWIdentifier(S, 0);
if (id != NULL) {
    free(id);
}
ssSetDWorkRTWIdentifier(S, 0, NULL);

См. также

mdlInitializeSizes

Введенный в R2007b