4.3.2. __value_in_regs

C 및 C++에서 함수에서 여러 값을 반환하는 한 가지 방법은 구조체를 사용하는 것입니다. 일반적으로 구조체는 스택에서 반환되며 스택과 관련된 여러 가지 단점이 따릅니다.

메모리 트래픽과 코드 크기를 줄이기 위해 레지스터를 통해 함수에서 여러 개의 값이 반환되도록 할 수 있습니다. 함수를 __value_in_regs로 정규화하여 struct에 있는 함수에서 최대 네 개의 단어를 반환할 수 있습니다. 예를 들면 다음과 같습니다.

typedef struct s_coord { int x;	 int y;	 } coord;	
coord reflect(int x1, int y1) __value_in_regs;

함수에서 여러 개의 값을 반환해야 하는 경우 위치에 관계없이 __value_in_regs를 사용할 수 있습니다. 예제에는 다음과 같은 작업이 포함됩니다.

__value_in_regs에 대한 자세한 내용은 Compiler Reference Guide에서 4-21페이지의 __value_in_regs를 참조하십시오.

Copyright © 2002-2007 ARM Limited. All rights reserved.ARM DUI 0205HK
Non-Confidential