日期:2017年3月22日

C/CPP, 编程

探讨C语言返回struct的实现

C语言基本类型的返回通过寄存器实现。 寄存器容量不大,一个结构体的大小不定,多塞几个成员,很容易就会超过寄存器的容量,不太可能通过寄存器一次性返回一个结构体。 把以下代码转为汇编,探个究竟: // return_struct.c struct the_struct { int num1; int num2; double num3; double num4; int *num_ptr1; int *num_ptr2; }; struct the_struct fun() { struct the_struct the_struct1; the_struct1.num1 = 1; the_str […]

Read more 2 Comments