SPI read write for 32bits data

Paradigm:
How can I declare my variable? Is it long int?

That part is up to you. Depending on where you're receiving this data from, and what it's made up of, you might declare it as an array of 4 bytes (or characters) or a pair of int, or as a single long. All will give you 32 bits of data to play with, but when you do the SPI.transfer() for transmit or receive; or ShiftOut() / shiftIn() you'll be sending it in 4 byte-sized pieces (ie 8 bits at a time as dhenry posted above).

Paradigm:
How about reading? How can I read a 32bits data from SPI?

The same way, a byte at a time.

What is the IC you're wanting to communicate with?

Cheers ! Geoff