When passing a struct into an API, I've noticed that many have a member that represents the size of the struct in bytes. I was just wondering why that would be needed. Shouldn't the size already be known by the definition of the struct?