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