如下代码:reinterpret_cast不是二进制重新解释吗?为什么int不能转换为struct呢?
typedef struct {
uint32_t num : 1;
uint32_t unused : 31;
} Test;
int main(){
uint32_t test_num = 1;
//Test tte;
//memcpy(&tte, &test_num, sizeof(test_num)); //这样可以正确拷贝
Test tte = reinterpret_cast<Test*>(&test_num); //但是这样就报错:错误:conversion from ‘Test*’ to non-scalar type ‘Test’ requested
printf("%d,%d\n", tte.num, tte.unused);
Test tte = reinterpret_cast<Test*>(&test_num);
==>Test *tte = reinterpret_cast<Test*>(&test_num);