I doubt it would be different between Linux distributions. On my 64 bit machine, key_t is 4 bytes. It is trivial to test that on a 32 bit machine as well (I am guessing it is also 4 bytes). Now whether it represents a signed value, or an unsigned value is another question.
You assign it a value with the ftok() function. The system creates it for you.
You should not "think up" a number and assign it. The value is based on the path argument and the id argument of ftok(). The id's lowest 8 bits of an integer only are used, so it needs to be non-zero and 1-255. Just any old higher number can be ignored and should not be used, eg. 8192 would yield zero when only the lowest 8 bits are used.