就在几周前,我了解到C++标准有一个严格的别名规则。基本上,我问了一个关于移位的问题——而不是一次移位一个字节,为了最大限度地提高性能,我想用(分别为32或64位)加载处理器的native寄存器并执行4/8的移位字节全部在一条指令中。这是我想避免的代码:unsignedcharbuffer[]={0xab,0xcd,0xef,0x46};for(inti=0;i>4);}buffer[3]相反,我想使用类似的东西:unsignedcharbuffer[]={0xab,0xcd,0xef,0x46};unsignedint*p=(unsignedint*)buffer;//unsigne