Earlier quoted context omitted.
Why is it such a terrible idea? No need to add complexity, dependancies and reduced performance by using these libraries.
Because a struct might not serialize the same way from a CPU architecture to another. The sizes of ints, the byte order and the padding can be different for instance.
Endianness might kill your portability in theory. but in practice, nobody uses big endian anymore. Unless you're shipping software for an IBM mainframe, little endian is portable.