반환 형식
함수에 의해 반환 되는 값의 종류와 크기를 설정 하 고 아래 구문에 형식 지정 자가 해당 함수의 반환 형식:
구문
함수 정의:
선언 지정자 선택특성 seq 수신 동의선언 자 선언 목록 수신 동의복합 문/ * 특성이 seq Microsoft 관련 된 * /
선언 지정자:
저장소 클래스 지정자 선언 지정자 선택형식 지정 자가 선언 지정자 선택
형식 한정자 선언 지정자 선택
형식 지정 자가:
voidchar
short
int
long
float
double
서명
서명 되지 않은
구조체 또는 공용 구조체 지정자
enum 지정자
형식 정의 이름
형식 지정자 모든 기본 작업을 지정할 수 있습니다 구조체 또는 공용 구조체 형식입니다.오지 않는 경우 형식 지정자, 반환 형식이 int 간주 됩니다.
함수 정의에 지정 된 반환 형식이 프로그램의 다른 부분에서 함수 선언에서 반환 형식을 일치 해야 합니다.함수 값을 반환 하는 경우는 return 식을 포함 하는 문이 실행 됩니다.필요 하 고 반환 되는 함수가 호출 될 시점에 반환 값 형식에 변환 식이 계산 됩니다.함수의 반환 형식으로 선언 된 경우 void, return 문이 포함 된 식에 경고가 발생 합니다 및 해당 식은 평가 되지 않습니다.
다음 예제 함수 반환 값을 설명 합니다.
typedef struct
{
char name[20];
int id;
long class;
} STUDENT;
/* Return type is STUDENT: */
STUDENT sortstu( STUDENT a, STUDENT b )
{
return ( (a.id < b.id) ? a : b );
}
정의 하는이 예제는 STUDENT 입력 한 typedef 선언 함수를 정의 하 고 sortstu 를 STUDENT 반환 형식.함수 선택 하 고 두 구조체 인수 중 하나를 반환 합니다.후속 호출에서는 함수에 컴파일러가 검사 인수 형식이 있는지 확인 합니다 STUDENT.
[!참고]
전체 구조가 아닌 구조를 포인터를 전달 하 여 효율성을 향상 시킬 수 있습니다.
char *smallstr( char s1[], char s2[] )
{
int i;
i = 0;
while ( s1[i] != '\0' && s2[i] != '\0' )
i++;
if ( s1[i] == '\0' )
return ( s1 );
else
return ( s2 );
}
이 예제에서는 문자 배열을 가리키는 포인터를 반환 하는 함수를 정의 합니다.함수 인수와 두 문자 배열 (문자열)를 사용 하 고 짧은에 포인터를 반환 합니다. 두 문자열입니다.배열에 대 한 포인터를 가리키는 합니다 첫 번째 배열 요소 및 해당 형식이 있습니다. 즉, 함수의 반환 형식을 입력에 대 한 포인터는 char.
함수를 선언할 필요가 없습니다 int 반환 형식, 호출 하기 전에 프로토타입을 올바른 형식 인수 및 반환 값에 대 한 검사를 사용할 수 있도록 권장 되지 않지만.