The I2C bus is a byte-wide serial transmition, so all transfers have to be made in byte chunks. Nevertheless I2C allows for transmitting (nearly) unlimited streams of data. There will be no performance loss when transmitting larger amounts of data.
When interchanging data between different CPUs you have to observe the chapter "Handling endianess" in the datasheet.
There is a buffer write API. So you could have an array or a structure,
both of which you know their length, and R/W them at will using buffer
write f(). Structure has advantage of mixed variable types.
Bob, Dana, That save me time to finally sort this out. Thank you, both !