Size: a a a

2020 April 22

r

r44083 in Deus Volt!
Thorn
ничего не понял. зачем принятый пакет сразу затирается нулями?
Это для дебага. Я там просто смотрю что пришло дебагером
источник

T

Thorn in Deus Volt!
у пакета есть внутренняя структура? не лучше ли struct таки (а следующий уровень — собрать их в union)
источник

r

r44083 in Deus Volt!
Так а какая там структура? Номер канала и буфер
источник

r

r44083 in Deus Volt!
Хотя ещё есть payload_size
источник

r

r44083 in Deus Volt!
))
источник

T

Thorn in Deus Volt!
буфер — это место, где данные лежат. там внутри поля есть? или это сэмплы сигнала какого-то?
источник

r

r44083 in Deus Volt!
Thorn
буфер — это место, где данные лежат. там внутри поля есть? или это сэмплы сигнала какого-то?
Это просто кусок памяти. Там лежат принятые raw байты. Никаких полей нет
источник

T

Thorn in Deus Volt!
typedef struct {
   enum packet_type type;
   uint8_t data[32];
} packet_t;

static inline uint8_t get_size_for_type(enum packet_type type) {
   switch (type) {
   case TYPE1:
       return 24;
   case TYPE2:
       return 31;
   }
}

while (true) {
   packet_t packet;
   blocking_read(&packet);

   switch(packet.type) {
       // ...
   }
}
источник

r

r44083 in Deus Volt!
Это как-то сложно выглядит
источник

GG

Gagarin Gagarin in Deus Volt!
что делает слово inline ?
источник

T

Thorn in Deus Volt!
Gagarin Gagarin
что делает слово inline ?
это по желанию, если вызывается несколько раз, а flash мало, то лучше без него
источник

D

Dr Zlo in Deus Volt!
всё в кучу))
источник

D

Dr Zlo in Deus Volt!
Thorn
это по желанию, если вызывается несколько раз, а flash мало, то лучше без него
наоборот
источник

D

Dr Zlo in Deus Volt!
желательно inline, но если флеш мало то лучше без него
источник

D

Dr Zlo in Deus Volt!
и inline на самом деле не гарантирует инлайн функции
источник

T

Thorn in Deus Volt!
Dr Zlo
желательно inline, но если флеш мало то лучше без него
я это и написал
источник

D

Dr Zlo in Deus Volt!
давно уже компиляторы умнее людей
источник

r

r44083 in Deus Volt!
Если хотите точно заинлайнить - тогда лучше constexpr функция
источник

T

Thorn in Deus Volt!
r44083
Если хотите точно заинлайнить - тогда лучше constexpr функция
аргумент неизвестен в compile time
источник

D

Dr Zlo in Deus Volt!
гарантированный инлайн дадут только макросы, констекспы, и в некоторых компиляторах есть force inline
источник