If I have a message structure that I am using and some of them are just single bytes (char), some are ints, and others are floats and I need to send them in order, but for the ints and floats and I need to send them in high order byte format.
I mean the message is read serial left to right, but the ints and floats are read right to left. I want to know if I write Serial.write(structure->some_int) or Serial.write(structure->some_float) will this work, or does this write them the other way? Thanks.
Serial.write() writes bytes to the serial port. If the value that you want to send is larger than a byte, it is up to you to take the value apart and send each byte. You can then send the bytes in whatever order you like.
This is the same problem that occurs when sending data over a network connection. You need to decide how you're going to encode your data as a byte stream. In simple cases where the sender and receiver have the same memory layout then you can just send the range of memory addresses occupied by your data as a sequence of bytes and rely on them meaning the same thing to the receiver as they do to the sender.
More generally you will need to encode your message. In networking there is a concept called "network byte order" which defines how multi-byte integers are represented as a byte stream. The 'C' runtime library contains function htons(), ntohs() etc to convert values between the host's local byte ordering and the conventional TCP/IP network byte ordering. If your messages also include more complex values such as floating point numbers then you would need to define how they were going to be encoded too.