I2C TinyWireS SEND: How to convert unsigned long to uint8_t array?
This might not be politically correct code, but it is pretty simple to just cast a pointer to uint8_t like this:

long data = 5;
uint8_t *rx = (uint8_t*) &amp;data;


You can still use array subscripts even though its a pointer, and you can pass it to a function like an array. Just don't go past rx[3].

Alternately, you could also make a union like this:

union{ long data; uint8_t bytes[4]; } convert;
convert.data = 5;


And then use convert.bytes as your array to send.