Если ваша программа отправляет данные в другую систему (либо по последовательному или сетевому каналу, либо сохраняя их в файл для чтения чего-либо еще), либо считывает данные из другой системы, у вас могут возникнуть проблемы с порядком байтов.
Я не знаю, что статический анализ мог бы обнаружить такие конструкции, но если ваши программисты следуют стандарту кодирования, где элементы структуры и переменные были размечены, чтобы указать, что их порядковый номер может помочь.
ДляНапример, если ко всем структурам сетевых данных добавлено _be
к названию многобайтовых членов, вы можете найти случаи, когда вы присваивали одной переменной без суффикса (порядок байтов хоста) или даже литеральное значение (например, 0x1234)из этих членов.
Было бы замечательно, если бы мы могли зафиксировать порядок байтов в наших типах данных - uint32_be и uint32_le, чтобы идти с uint32_t.Тогда компилятор может запретить присваивания или операции между ними.И подпись для htobe32
будет uint32_be htobe32( uint32_t n);
.