Это будет зависеть от порядка байтов машины, на которой он работает. Это довольно плохая практика. В маленькой системной системе, которая является большинством аппаратных средств Intel, сначала используется младший байт, поэтому 32-разрядное значение SIGNED будет записано в младшие 32 бита из 64-битного целого числа. В системе большого конца она будет записана в биты высокого порядка.
Обратите внимание, что int подписан. Если value2 является отрицательным значением, полученное 64-битное число не будет отрицательным (если оно уже не было отрицательным).
Он также не изменит биты высокого порядка 64-битного int.
Я бы сказал ... не делайте этого?
EDIT Чтобы более точно ответить на ваш вопрос, да, вы правы, в зависимости от того, что вы подразумеваете под «первыми 32 битами». Сначала в любом порядке, который использует платформа, да.
&value1 -> will give the address of value1
(int32_t*)&value1 -> tells the compiler to treat the address of value1 as a pointer to an int32_t
*(int32_t*)&value1 -> then dereference the pointer, so assigning to this will put the assigned value into the address of value1 as if it were an int32_t.
Речь идет о контенте. Об этом было так много вопросов –