在mips架构上,不对齐的指针读写会引起地址错误异常(address error exception)。对应的分别是Adel/ades的异常(address error load/store),在linux内核的exception中接管了这些处理并返回正常。
因此linux下,mips架构,下面代码是不会出错的。
int main(int argc,char *argv[])
{
int tttt = 0;
int tmp;
char *ptr = (char *)&tttt;
ptr+=1;
tmp = *(int *)ptr;
printf("tmp = %d\n", tmp);
return 0;
}
另:我在X86架构下测试,也不出错。ARM架构不了解。
阅读(1680) | 评论(0) | 转发(0) |