Структура в C - это способ представления данных в памяти.(Это дает «структуру» в память.)
Любое преобразование из «структуры» в «последовательность байтов», которая просто отбрасывает бит «структуры» и использует то, что использует лежащее в основе представление C, которое собираетсябыть затронутым порядком байтов(И дополнения. Возможно, есть и другие проблемы, такие как указатели, sizeof (некоторый целочисленный тип) и т. Д.)
Я подозреваю, что вы делаете что-то вроде этого:
// Some non-standard way to get rid of padding in Foo
struct Foo
{
// Some fields...
}
// Meanwhile, in a function somewhere...
fwrite(a_foo, sizeof(a_foo), 1, fp);
Может бытьВы не звоните fwrite
, возможно, это send
, но да, если вы делаете сериализацию, как это, вы будете подвержены влиянию порядка байтов.