C structs don’t exist in machine code. They’re just an abstraction that the compiler turns into sizes and offsets. You can make sizes and offsets by hand, too, and that’s what coders generally do if they need a struct but they’re using pure assembly (... buuuut then there’s Konami Krack). But on a limited system like the NES you tend to just put variables at whatever address in RAM you feel like, and any tables that would warrant any sort of “struct” are going to be pretty small anyway.
The general strategy is to label and comment things well when you code (or when you disassemble), because all that abstraction goes away at assembly/compile time (unless, say, you have debug mode on...). Also, in the NES era, the programming paradigm programmers tended to learn was not OOP, but
structured programming, which basically boils down to “don’t write spaghetti code”. The kind of organization you get with OOP is a bit wasteful of resources when it comes to the size and scope of NES games.
If you want to see the real strategies programmers used in real games, you can find some disassemblies in the Documents section....