LINUX.ORG.RU

Сишечка - передача массива структур с полями пользовательского типа

 , ,


0

4

Вопрос меня тревожит не по граблям ли я хожу и как это вобще лучше сделать? Допустим имеется вот такой массив:

typedef enum {ONE, TWO, THREE} order_t;

typedef struct {
    ordet_t order;
    uint8_t* name;
    uint16_t lenght;
} data_t;

data_t arr[];

который необходимо передавать на другое устройство. И что бы избежать всяких возможных проблем при передачи есть мысль упаковать структуру (для сокращения данных для передачи), а при передаче передать указатель на массив приведя его к uint8_t

void data_trasfer((uint8_t*)arr);

Ну и соответсвующая сторона соответсвенно будет обратно кастовать к data_t. Такая своеобразная сериализация данных.



Последнее исправление: pavel_l (всего исправлений: 1)
Ответ на: комментарий от firkax

вот насчёт

попытки гуманитариев придумывать технические стандарты.

у меня со многими стандартами телекома было такое ощущение. вот есть нормальные стандарты - IETF, которые писали технари, а есть ненормальные - это IEEE, 3GPP, W3C, в которых ну очень странная, часто совершенно вывихнутая, логика и это точно писали не технари.

Iron_Bug ★★★★★
()
Ответ на: комментарий от firkax

так хендшейки занимают очень малый процент в обмене по сети, в среднем. средний размер пересылаемого контента - где-то около килобайта (я одно время много работала с анализом трафика). современный TLS ещё и кэширует данные для клиента и быстро включает следующую отправку. так что он довольно эффективен. ну, учитывая всю байду с шифрованием вообще. она сильно жрёт проц - это факт. но, увы, современные интернеты без такой фигни не работают. и ладно ещё, если просто TLS, а то их ещё и через туннели сейчас гонять приходится.

Iron_Bug ★★★★★
()
Ответ на: комментарий от firkax

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

но противно писать для него парсеры - это факт. мне приходилось. чтобы сделать действительно эффективно - это надо попотеть.

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 1)
Ответ на: комментарий от qulinxao3

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

академизм - это вот когда студент приходит на работу и начинает писать код, как его учили в ВУЗе. и это ужасно. куча совершенно ненужных наворотов, отстуствие практического опыта. вот сейчас полно такого софта.

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 2)
Ответ на: комментарий от Iron_Bug

сорян за кафедру:

История чтения в западном мире от античности до наших дней

то что текущей уровень хомячков-программистов в обратной отрицательной компенсирует прогресс в вт - так всегда было при экспоненте в какой либо технологии

начиная с той же грамотности

«5%» было грамотное

ожидание 100% грамотных не просто x20 а x20+синергия(положительная)

реальность 100% грамтных ну инструменты стали доступней всем тока и воды для «изначальных» 5% стало больше :(

так и пристнопамятные бумажные технологии

ваще это правильно что уровень спецов адаптируется ибо нет экономики удерживать достигнутый в прошлом уровень спецов - ща больше важней широкая база - а общая средняя подрастёт (бум надеца)

qulinxao3 ★☆
()
Ответ на: комментарий от Obezyan

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

в корпорациях тоже иногда встречается говнокод. или спёртые опенсоцные библиотеки, для которых нарушен GPL. где можно, я пытаюсь с этим бороться. но общее засилье говнокода - это не просто случайность. это тренд.

есть ещё одна нехорошая тенденция. приходят бодрые нубы и начинают «разрабатывать» старые библиотеки, которые до их прихода прекрасно работали и ничего не требовали. и тут-то и начинается цирк с кониной: и баги, и куча ненужных натащенных левых жирных зависимостей, и даже просто тупое переписывание комментариев в коде и названий переменных с точки зрения долбанутых СЖВшников иногда.

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 2)