4.1.18. __value_in_regs

__value_in_regs 한정자는 컴파일러에 메모리를 사용하기 보다는 정수 레지스터에서 최대 4개의 정수 워드 또는 부동 소수점 레지스터에서 최대 4개의 float 또는 double로 구성된 구조체를 반환하라고 지시합니다.

__value_in_regs는 함수 한정자이며 함수 유형에 영향을 주지 않습니다.

구문

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

인수 설명:

return-type

크기가 최대 4워드인 구조체의 유형입니다.

사용법

__value_in_regs 함수를 선언하면 두 개 이상의 결과를 반환하는 함수를 호출할 경우 유용할 수 있습니다.

제한

C++ 함수는 구조체에서 복사 생성이 필요할 경우 __value_in_regs 구조체를 반환할 수 없습니다.

__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 0348AK
Non-Confidential