Назад к задачам
Junior — Senior
11

Оптимизация функции поиска ячейки в массиве

Компании, где спрашивали:

МТСМТС
Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

Необходимо улучшить читаемость и структуру функции, которая ищет элемент в массиве по идентификатору и возвращает указатель на найденный блок управления. Перепишите код, используя более понятные имена переменных и упростив логику без изменения поведения.

/**
 * @fn ueUtlFndCell
 *
 * @brief Fill cell control block from cellArr by \p cellId
 *
 * @param[in]  targetCellId   идентификатор искомой ячейки
 * @param[out] outCell        указатель для хранения найденного блока управления.
 * @return     ROK on success
 *             RFAILED if cellId not found.
 */
PUBLIC S16 ueUtlFndCell(U16 targetCellId, CellCb **outCell)
{
    TRC2(ueUtlFndCell)

    for (U16 idx = 0; idx < UE_NUM_CELLS; idx++) {
        if (targetCellId == cellArr[idx].cellId) {
            *outCell = &cellArr[idx];
            RETVALUE(ROK);
        }
    }

    UE_LOG(UE_APP, UE_LOG_ERROR, "ueUtlFndCell: CellCb not found for cell id: %d\n", targetCellId);
    *outCell = NULLP;
    RETVALUE(RFAILED);
}