当前位置:编程学习 > 网站相关 >>

有趣的inc

在群里看到别人发的一段代码,说是可以实现汇编inc的效果

1
2
3
4
5
6
int _inc(int &i)
{
    char (*p)[2] = (char(*)[2])i;
    int k = (int)&((*p)[1]);
    return k;
}

刚看到时,我以为是返回数组的第2个元素.

后来听说是inc效果,就觉得是由于char跟int的sizeof造成的.

经过别人的提醒,才知道其实都不对.

1
2
3
4
5
6
7
8
int _inc(int &i)
{
    //这句好理解,把i转化成一个指向两个char的数组指针
    char (*p)[2] = (char(*)[2])i;
    //关键是这一句,利用了数组下标的特性,a[i]=*(a+i);
    int k = (int)&((*p)[1]);
    return k;
}

不知道这样理解对不对

 

87年 blog

 

补充:综合编程 , 其他综合 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,