Цель
Я пишу сетевую программу в C (в частности gnu89), и я хотел бы упростить вещи, переинтерпретируя определенный struct X как большой массив байтов (aka char), отправляя байты по сети, и переинтерпретировать их как struct X с другой стороны. Для этого я решил использовать gcc __attribute __ ((__ставляется__)). Я сделал все возможное, чтобы убедиться, что это сделано правильно (т.е. Я учитывал сущность и другие связанные проблемы).
Вопрос
Кроме того, что struct X как можно меньше, gcc гарантирует, что a struct, определенный с __attribute __ ((__ставляется__)), сохраняет исходный порядок? Я провел много исследований, и мне еще предстоит найти документацию о том, существует ли эта гарантия.
Примечания
Можно с уверенностью предположить, что и отправитель, и получатель не будут иметь проблем с переносимостью (например, sizeof(int) на сервере равно sizeof(int) на клиенте).