写出C语言的地址对齐宏ALIGN(p,alignbytes),其中p是要对齐的地址,alignbytes是要对齐的字节数(2的N次方),比如说:ALIGN(13,16)=16。
答案:#define ALIGN(p,alignbytes) ((void*)(((unsigned long)p+alignbytes-1)&~(alignbytes-1)))
时间: 2024-12-08 23:20:55
写出C语言的地址对齐宏ALIGN(p,alignbytes),其中p是要对齐的地址,alignbytes是要对齐的字节数(2的N次方),比如说:ALIGN(13,16)=16。
答案:#define ALIGN(p,alignbytes) ((void*)(((unsigned long)p+alignbytes-1)&~(alignbytes-1)))