Предпочтительный способ сравнения структуры с нулем

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

  1. сравнить каждый элемент с нулем, в результате чего получится 40 операторов if.
  2. размещает аналогичную структуру, которая уже обнулена, и memcmp вместе со структурой.
  3. объединение структуры в объединение с типом, достаточно большим, чтобы покрыть все это.

например

typedef union {
  struct {
    uint8_t a;
    uint8_t b;
    }
  uint16_t c;
 } STRUCTURE_A;

, а затем сравнивая его с нулем.

Я хотел бы знать, что вы думаете об этих решениях, какие из них вы считаете наиболее быстрыми и эффективными.
И если вы считаете, что подход лучше, пожалуйста, скажите мне ...
Спасибо.

10
задан Daniel Fischer 23 January 2012 в 19:13
поделиться