C++参数传递过程

来源:互联网 发布:php全站搜索 编辑:程序博客网 时间:2024/06/08 07:59


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".globlbir.bss.align 16.typebir, @object.sizebir, 24bir:.zero24.globlb1.align 16.typeb1, @object.sizeb1, 24b1:.zero24.text.globl_Z4test4birdS_.type_Z4test4birdS_, @function_Z4test4birdS_:.LFB0:.cfi_startprocpushq%rbp.cfi_def_cfa_offset 16.cfi_offset 6, -16movq%rsp, %rbp.cfi_def_cfa_register 6movq%rdi, -8(%rbp)movl40(%rbp), %eaxmovl%eax, 16(%rbp)movl44(%rbp), %eaxmovl%eax, 20(%rbp)movl48(%rbp), %eaxmovl%eax, 24(%rbp)movl52(%rbp), %eaxmovl%eax, 28(%rbp)movq56(%rbp), %raxmovq%rax, 32(%rbp)movl$100, 40(%rbp)movl$200, 44(%rbp)movq-8(%rbp), %raxpopq%rbp.cfi_def_cfa 7, 8ret.cfi_endproc.LFE0:.size_Z4test4birdS_, .-_Z4test4birdS_.globlmain.typemain, @functionmain:.LFB1:.cfi_startprocpushq%rbp.cfi_def_cfa_offset 16.cfi_offset 6, -16movq%rsp, %rbp.cfi_def_cfa_register 6subq$80, %rspmovl$999, b1(%rip)movl$888, b1+4(%rip)movl$777, b1+8(%rip)movl.LC0(%rip), %eaxmovl%eax, b1+12(%rip)leaq-32(%rbp), %raxmovqb1(%rip), %rdxmovq%rdx, 24(%rsp)movqb1+8(%rip), %rdxmovq%rdx, 32(%rsp)movqb1+16(%rip), %rdxmovq%rdx, 40(%rsp)movqbir(%rip), %rdxmovq%rdx, (%rsp)movqbir+8(%rip), %rdxmovq%rdx, 8(%rsp)movqbir+16(%rip), %rdxmovq%rdx, 16(%rsp)movq%rax, %rdicall_Z4test4birdS_movl$0, %eaxleave.cfi_def_cfa 7, 8ret.cfi_endproc.LFE1:.sizemain, .-main.section.rodata.align 4.LC0:.long1091567616.ident"GCC: (GNU) 4.8.5 20150623 (Red Hat 4.8.5-11)".section.note.GNU-stack,"",@progbits



原创粉丝点击