__value_in_regs

__value_in_regs 修飾子は、最大 4 つの整数ワードからなる構造体、または最大 4 つの float または double を、メモリを使用するのではなく、それぞれ整数レジスタと浮動小数点レジスタで返すようコンパイラに指示します。

__value_in_regs は、関数修飾子です。これは、関数の型に影響します。

Show/hide構文

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

各パラメータには以下の意味があります。

戻り値の型

最大 4 ワードのサイズまでの構造体の型を指定します。

Show/hide使用法

関数 __value_in_regs の宣言は、複数の結果を返す関数を呼び出すときに便利です。

Show/hide制約条件

構造体のコピーを作成する必要がある場合、C++ 関数では __value_in_regs 構造体を返すことはできません。

__value_in_regs として宣言された仮想関数がオーバーライドされる場合、オーバーライドする関数も __value_in_regs として宣言する必要があります。関数が一致しない場合、コンパイラによってエラーが生成されます。

Show/hideエラー

__value_in_regs によって修飾される関数で返される構造体が大きすぎる場合、警告が生成され、__value_in_regs 構造体は無視されます。

Show/hide

typedef struct int64_struct
{	
    unsigned int lo;	
    unsigned int hi;	
} int64_struct;	
__value_in_regs extern 	
    int64_struct mul64(unsigned a, unsigned b);

Show/hide関連項目

Copyright © 2010-2011 ARM. All rights reserved.ARM DUI 0491EJ
Non-ConfidentialID081711