平台为 x86 或者 路由器常见的 MIPS x86 gcc 7.3 MIPS gcc 7.5
比如这个代码
char buf[10];
uint32_t *p = (uint32_t *) (buf+1); // p 指向没有 4 字节对其的地址。
// 下面的各种操作也都是正常的 (至少运行起来是正常的)
*p = 0x12345678;
*p = *p + 1;
这样没有对其的情况下会有什么影响呢? “对齐”操作是编译器工作还是 CPU 的工作呢? 会有多大效率差别呢?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.