Почему указатели на структуры лучше чем несколько указателей на простые типы данных?
Допустим вы начали писать программу , разбивая ее логическим образом на функции.
И используете в качестве параметров функций разные указатели uint8_t *, uin8_t** (двойные) и т.д.
И вот каждый раз когда надо добавить параметр ил удрать параметр происходит стандартный набор действий : изменить определение функции в c и h файлах, потом вызовы функции изменить.
Гораздо удобнее создать структуру и нужными вам параметрами и указатель на эту структуру передавать в функцию.
В результате как минимум не придется каждый раз менять определение функции с и h файлах. Это реально экономит время ,т.к. приличная доля времени уходит именно на это.
К примеру ответ от сервера http загоняем в переданную структуру (через укзатель) и возвращаем вызвавшему родителю:
typedef struct HTTP_ANSWER{
uint8_t *rxBuf;
uint32_t dataCount;
uint8_t *pBody;
uint32_t bodyLen;
uint8_t* error;
}HTTP_ANSWER;