汪汪一只猫
voidv(char*s,char*t){*s++=*t++;}看一下对应指令push%rbpmov%rsp,%rbpmov%rdi,-0x8(%rbp)//参数1smov%rsi,-0x10(%rbp)//参数2tmov-0x10(%rbp),%rax//t暂存%raxmovzbl(%rax),%edx//*t放入%edxmov-0x8(%rbp),%rax//s暂存%raxmov%dl,(%rax)//*t的低8位,即一个字节,放入*saddq$0x1,-0x8(%rbp)//s++addq$0x1,-0x10(%rbp)//t++leaveqretq可以看到,先*s=*t,然后s和t各自加1