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