![]() |
1
2
您引用的文档指出,任何不适合于单个寄存器的复合类型都将通过隐藏指针返回。这将包括一个C结构。 只有 单宽整数或fp类型可以在寄存器对中返回。
寄存器对比通过隐藏指针存储/重新加载更有效,因此不幸的是,您必须绕过调用约定而不是返回
为了向C编译器描述您想要的调用约定,您告诉它您正在返回
例如(source+asm on the Godbolt compiler explorer )。我用过工会,但你也可以用轮班。
编译如下:
|