4.1.18. __value_in_regs

__value_in_regs 限定符指示编译器在整数寄存器中最多返回四个整型字的结构,或者在浮点寄存器中最多返回四个浮点或双精度值,而不是使用内存。

__value_in_regs 是一个函数限定符。 它影响函数的类型。

语法


__value_in_regs return-type function-name([argument-list]);

其中:

return-type

是大小最多为四个字的结构类型。

用法

调用返回多个结果的函数时,使用 __value_in_regs 声明函数是非常有用的。

限制

如果 __value_in_regs 结构需要复制构造,C++ 函数将无法返回该结构。

如果要覆盖声明为 __value_in_regs 的虚拟函数,还必须将覆盖函数声明为 __value_in_regs。 如果这些函数不匹配,编译器将生成错误。

错误

如果由 __value_in_regs 限定的函数中返回的结构太大,则会生成警告并忽略 __value_in_regs 结构。

示例


typedef struct int64_struct

{	

    unsigned int lo;	

    unsigned int hi;	

} int64_struct;	



__value_in_regs extern 	

    int64_struct mul64(unsigned a, unsigned b);

另请参阅

Copyright © 2007 ARM Limited. All rights reserved. ARM DUI 0348AC
Non-Confidential