|
1
2
您引用的文档指出,任何不适合于单个寄存器的复合类型都将通过隐藏指针返回。这将包括一个C结构。 只有 单宽整数或fp类型可以在寄存器对中返回。
寄存器对比通过隐藏指针存储/重新加载更有效,因此不幸的是,您必须绕过调用约定而不是返回
为了向C编译器描述您想要的调用约定,您告诉它您正在返回
例如(source+asm on the Godbolt compiler explorer )。我用过工会,但你也可以用轮班。
编译如下:
|
|
|
Dusan · 调用函数时保存状态寄存器 8 年前 |
|
|
Bilal · 在C中调用存储Oracle过程# 8 年前 |
|
|
LemusThelroy · Python-从其他类中的方法检索值 11 年前 |
|
vandale · x64程序集中的堆栈对齐 12 年前 |
|
|
user2402179 · 对于Windows程序的调用约定,最好声明什么? 12 年前 |