If you want to set a 64bit integer variable to a constant value, you can simply say something like:
long long var64bit = 1L;
The L at the end of 1L says that it is a 64bit constant value of 1.
If you are comfortable with hexadecimal and want a 64bit bit-field constant, then the usual way of setting a 64bit variable would look something like this:
unsigned long long bitfield64bit = 0xDEADBEEFDEADBEEFL;
Again, note the trailing L.
If you have two 32bit values that you want to pack into a 64bit value, then you can do this using shift and logical-OR operations as:
long long var64bit = (long long)(((unsigned long long)high_bits << 32) | (unsigned long long)low_bits);
where *high_bits* is the 32bit variable holding the high bits and *low_bits* is the 32bit variable containing the low bits. I do the bit-wise operations on unsigned values because of possibly excess paranoia regarding the sign bit and conversion between 32bit and 64bit integers.
The opposite operations, dividing a 64bit variable into high and low bits can be done as follows:
int high_bits = (int)(var64bit & 0xFFFFFFFFL);
int low_bits = (int)((var64bit >> 32) & 0xFFFFFFFFL);