Q结构体的传递和返回是如何实现的?
A当结构体作为参数传递给函数时,通常会将整个结构体压入堆栈,占用所需的字数。 (程序员通常选择使用结构体指针,正是为了避免这种开销。) 一些编译器仅仅传递结构体的指针,尽管他们可能需要创建一个局部副本以保持传值语义。
函数通常通过一个额外的、由编译器提供的“隐藏”参数指向的位置来返回结构体。一些旧的编译器使用一个特殊的、静态的位置来返回结构体,尽管这使得结构体值函数不可重入,这是 ANSI C 所不允许的。
参考文献:ISO Sec. 5.2.3
由 托管