사용되지 않는 함수 선언 및 정의 폼Obsolete Forms of Function Declarations and Definitions

이전 스타일 함수 선언 및 정의는 매개 변수 선언에 대해 ANSI C 표준에 의해 권장되는 구문과 약간 다른 규칙을 사용합니다.The old-style function declarations and definitions use slightly different rules for declaring parameters than the syntax recommended by the ANSI C standard. 첫째로 이전 스타일 선언에는 매개 변수 목록이 없습니다.First, the old-style declarations don't have a parameter list. 둘째로 함수 정의에서는 매개 변수가 나열되지만 해당 형식은 매개 변수 목록에 선언되지 않습니다.Second, in the function definition, the parameters are listed, but their types are not declared in the parameter list. 형식 선언은 함수 본문을 구성하는 복합 문의 앞에 와야 합니다.The type declarations precede the compound statement constituting the function body. 이전 스타일 구문은 사용되지 않으며 새 코드에 사용하면 안 됩니다.The old-style syntax is obsolete and should not be used in new code. 그러나 이전 스타일 구문을 사용하는 코드는 여전히 지원됩니다.Code using the old-style syntax is still supported, however. 다음 예제에서는 사용되지 않는 선언 및 정의 형태를 보여 줍니다.This example illustrates the obsolete forms of declarations and definitions:

double old_style();           /* Obsolete function declaration */  

double alt_style( a , real )  /* Obsolete function definition */  
    double *real;   
    int a;   
{  
    return ( *real + a ) ;  
}  

int와 동일한 크기의 정수 또는 포인터를 반환하는 함수는 선언을 가질 필요가 없습니다(선언이 권장되기는 함).Functions returning an integer or pointer with the same size as an int are not required to have a declaration although the declaration is recommended.

ANSI C 표준에 부합하기 위해 줄임표를 사용하는 이전 스타일 함수 선언은 이제 /Za 옵션으로 컴파일할 때 오류를 생성하며 /Ze로 컴파일할 때 수준 4 경고를 생성합니다.To comply with the ANSI C standard, old-style function declarations using an ellipsis now generate an error when compiling with the /Za option and a level 4 warning when compiling with /Ze. 예:For example:

void funct1( a, ... )  /* Generates a warning under /Ze or */  
int a;                 /* an error when compiling with /Za */  
{  
}  

다음과 같이 이 선언을 프로토타입으로 다시 작성해야 합니다.You should rewrite this declaration as a prototype:

void funct1( int a, ... )  
{  
}  

승격된 형식과 동일하지 않은 형식이 있는 매개 변수나 줄임표로 동일한 함수를 이후에 선언하거나 정의하는 경우에도 이전 스타일 함수 선언으로 인해 경고가 생성됩니다.Old-style function declarations also generate warnings if you subsequently declare or define the same function with either an ellipsis or a parameter with a type that is not the same as its promoted type.

다음 섹션 C 함수 정의에서는 이전 스타일 구문을 포함하여 함수 정의를 위한 구문을 보여 줍니다.The next section, C Function Definitions, shows the syntax for function definitions, including the old-style syntax. 이전 스타일 구문에서 매개 변수 목록의 비터미널은 identifier-list입니다.The nonterminal for the list of parameters in the old-style syntax is identifier-list.

참고 항목See Also

함수 개요Overview of Functions