我正在尝试了解内存分配的工作原理,更改类型时地址和内存会发生什么等等。
我堆叠了这个字符串,无法理解这里到底发生了什么:
(uint32_t)(((uint64_t)addr) >> 32)
没有指针,所以我没有猜到这里如何更改内存分配。 你能解释一下吗?让我们假设变量“addr”的类型为DWORD。
答案 0 :(得分:1)
addr
投放到uint64_t;它的内容向右移动32位(从左侧推出零),结果转换为uint32_t。它似乎没有多大意义,以复杂的方式返回uint32_t类型的零。
此外,它与内存分配无关,这是堆栈中可能很少临时的部分。