Ant*_*nio 10 c c++ memory pointers
我无法完全理解我在这里阅读的内容的后果:将一个int指针转换为char ptr,反之亦然
总之,这会有用吗?
set4Bytes(unsigned char* buffer) {
const uint32_t MASK = 0xffffffff;
if ((uintmax_t)buffer % 4) {//misaligned
for (int i = 0; i < 4; i++) {
buffer[i] = 0xff;
}
} else {//4-byte alignment
*((uint32_t*) buffer) = MASK;
}
}
Run Code Online (Sandbox Code Playgroud)
编辑
有一个长时间的讨论(它是在评论中,神秘地删除了)关于指针应该被铸造到什么类型以检查对齐.现在讨论这个问题.