When it comes to dealing with binary data of certain format, in C/C++/C#, there are struct with a predictable layout and size to deal with them.
How do other languages deal with this to define, read and parse binary data easily?
What other popular programming languages have similar feature to declare and define such fixed size data structures?
perl - pack/unpack
pascal - record
java - read/write file streams RandomAccessFile
fixed size structures are rather moot in memory unless you are going to persist them into storage.
Even in dynamic classes like Java, they are still pretty much fixed size, but the sizing is based on serialization and you can determine the order of serialization by overwriting the readObject and writeObject methods, you don't necessarily need to enforce using syntax.
Don't be too caught up with these syntax issues, they are not going to be the determining factor of how low you can go. Besides a lot of higher level programming languages like Python, Perl, Ruby, Java has integration with C/C++ to allow you to reach down into low level constructs conveniently without sacrificing the benefits of highly featured and dynamic higher level programming languages.
You don't construct a house just using a screw driver right? Why then design a solution/program with just one programming language?
struct in C/C++ can be packed into a predictable layout for simple record reading and writing. But when you have a linked list implemented in struct, how are you going to persist this piece of information directly? At the end of the day, you as the software engineer has to decide how to persist data
Slightly out of topic, these days, there are approaches like using embedded database to persist data, so file access is not practice by a lot unless interoperability with older data or systems or in embedded system or direct memory access. In those cases, there are preferred mode of how to engage these data. It is not about the programming language at all.