小编Pro*_*ter的帖子

程序集lea指令int*q = p ++和int c = a ++

为了加深对"(*p)++"如何工作的印象,我写了一些测试代码,如:

int main()
{
  int  a = 3;
  int *p = &a;
  int b = (*p)++;
  int *q = p++;
  int c = a++;
  int d = c++;
  printf("a = %d, b = %d, c = %d, d = %d, p = %#x, q = %#x\n",a, b, c, d, p, q);
}
Run Code Online (Sandbox Code Playgroud)

输出为:a = 5,b = 3,c = 5,d = 4,p = 0xc6dc3490,q = 0xc6dc348c

但我的问题是关于装配(代码是订单而不是关闭和开启):

main:
        push    rbp
        mov     rbp, rsp
        sub     rsp, 48

;int a = 3 : …
Run Code Online (Sandbox Code Playgroud)

c x86 assembly

5
推荐指数
2
解决办法
491
查看次数

标签 统计

assembly ×1

c ×1

x86 ×1