Czy __atrybut GCC __ ((__ zapakowany__)) zachowuje oryginalne zamówienie?

Cel, powód

Piszę program sieciowy w C (konkretniegnu89) i chciałbym uprościć rzeczy, reinterpretując pewnestruct X jako duża tablica bajtów (a.k.a.char), wysyłanie bajtów przez sieć i reinterpretowanie ich jakostruct X z drugiej strony. W tym celu zdecydowałem się użyć atrybutu __attribute gcc __ ((__ pakowany__)). Zrobiłem wszystko, co w mojej mocy, aby zapewnić, że jest to zrobione poprawnie (tj. Uwzględniłem endianność i inne powiązane kwestie).

Pytanie

Inne niż zagwarantowanie tegostruct X jest tak mały, jak to możliwe, czy gcc gwarantuje, że astruct zdefiniowany za pomocą __attribute __ ((__ pakowany__)) zachowuje oryginalne zamówienie? Szukałem dość dużo i nie znalazłem jeszcze żadnej dokumentacji dotyczącej tego, czy ta gwarancja istnieje.

Uwagi

Można bezpiecznie założyć, że zarówno nadawca, jak i odbiorca nie napotkają problemów z przenośnością (np.sizeof(int) na serwerze jest równysizeof(int) na kliencie).

questionAnswers(6)

yourAnswerToTheQuestion