Сегодня я столкнулся с ситуацией, когда мне нужно было решить, равна ли вся структура, состоящая из около 40 элементов, нулевому значению - это означает, что каждый из элементов равен нулю. Когда я думал о том, как сделать это как можно быстрее и эффективнее, я подумал о 3 разных способах сделать это:
- сравнить каждый элемент с нолем, в результате получится 40 операторов if.
- выделение аналогичной структуры, которая уже обнулена и
memcmp
она со структурой. - обертывание структуры в объединении с типом, достаточно большим, чтобы покрыть все его.
например
typedef union {
struct {
uint8_t a;
uint8_t b;
}
uint16_t c;
} STRUCTURE_A;
а затем сравнивая его с нолем.
Я хотел бы знать, что вы думаете об этих решениях, какие из них вы найдете наиболее быстрыми и эффективными.
И если вы предпочитаете лучший подход, скажите мне...
Спасибо.