XDR обычно используется в сетевых системах, поскольку им нужен способ перемещения данных независимо от Endianness. Хотя ничто не говорит о том, что его нельзя использовать вне сетей.

ел несколько вопросов и ответов, касающихся порядкового номера структур, но они касались определения порядкового номера системы или преобразования данных между двумя разными порядковыми номерами.

Что бы я хотел сейчас, однако, если естьспособ обеспечить конкретный порядок байтов данной структуры, Существуют ли хорошие директивы компилятора или другие простые решения, кроме переписывания всего этого из множества макросов, манипулирующих битовыми полями?

Общее решение было бы неплохо, но я также был бы доволен конкретным решением gcc.

Редактировать:

Спасибо за все комментарии, указывающие на то, почему не следует применять принудительную последовательность, но в моем случае это именно то, что мне нужно.

Большой объем данных генерируется конкретным процессором (который никогда не изменится, это встроенная система с пользовательским оборудованием), и он должен быть прочитан программой (над которой я работаю), работающей на неизвестном процессоре. Побайтная оценка данных была бы ужасно хлопотной, поскольку она состоит из сотен различных типов структур, огромных и глубоких: большинство из них имеют много слоев других огромных структур внутри.

Изменение программного обеспечения для встроенного процессора не может быть и речи. Источник доступен, поэтому я намерен использовать структуры из этой системы вместо того, чтобы начинать с нуля и оценивать все данные побайтно.

Вот почему мне нужно сообщить компилятору, какой порядок байтов он должен использовать, не важно, насколько он эффективен или нет.

Это не должно бытьреальный изменение в порядке байтов Даже если это всего лишь интерфейс, и физически все обрабатывается в собственном порядке байтов процессоров, для меня это вполне приемлемо.

Ответы на вопрос(0)

Ваш ответ на вопрос