C++参数传递过程


struct bird
{
 int x,y,z;
 float flying;
 char *p;

};

bird bir,b1;
bird test(bird a,bird  b)
{
 a.x=b.x;
 a.y=b.y;
 a.z=b.z;
 a.flying=b.flying;
 a.p=b.p;
 b.x=100;
 b.y=200;
}


int main()
{
 b1.x=999;
 b1.y=888;
 b1.z=777;
 b1.flying=9.0;
bird d=test(bir,b1);
}
//********************
	.file	"b04.cpp"
	.globl	bir
	.bss
	.align 16
	.type	bir, @object
	.size	bir, 24
bir:
	.zero	24
	.globl	b1
	.align 16
	.type	b1, @object
	.size	b1, 24
b1:
	.zero	24
	.text
	.globl	_Z4test4birdS_
	.type	_Z4test4birdS_, @function
_Z4test4birdS_:
.LFB0:
	.cfi_startproc
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movq	%rdi, -8(%rbp)
	movl	40(%rbp), %eax
	movl	%eax, 16(%rbp)
	movl	44(%rbp), %eax
	movl	%eax, 20(%rbp)
	movl	48(%rbp), %eax
	movl	%eax, 24(%rbp)
	movl	52(%rbp), %eax
	movl	%eax, 28(%rbp)
	movq	56(%rbp), %rax
	movq	%rax, 32(%rbp)
	movl	$100, 40(%rbp)
	movl	$200, 44(%rbp)
	movq	-8(%rbp), %rax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	_Z4test4birdS_, .-_Z4test4birdS_
	.globl	main
	.type	main, @function
main:
.LFB1:
	.cfi_startproc
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	subq	$80, %rsp
	movl	$999, b1(%rip)
	movl	$888, b1+4(%rip)
	movl	$777, b1+8(%rip)
	movl	.LC0(%rip), %eax
	movl	%eax, b1+12(%rip)
	leaq	-32(%rbp), %rax
	movq	b1(%rip), %rdx
	movq	%rdx, 24(%rsp)
	movq	b1+8(%rip), %rdx
	movq	%rdx, 32(%rsp)
	movq	b1+16(%rip), %rdx
	movq	%rdx, 40(%rsp)
	movq	bir(%rip), %rdx
	movq	%rdx, (%rsp)
	movq	bir+8(%rip), %rdx
	movq	%rdx, 8(%rsp)
	movq	bir+16(%rip), %rdx
	movq	%rdx, 16(%rsp)
	movq	%rax, %rdi
	call	_Z4test4birdS_
	movl	$0, %eax
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.size	main, .-main
	.section	.rodata
	.align 4
.LC0:
	.long	1091567616
	.ident	"GCC: (GNU) 4.8.5 20150623 (Red Hat 4.8.5-11)"
	.section	.note.GNU-stack,"",@progbits




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Farmwang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值