선언자 및 변수 선언Declarators and Variable Declarations

이 단원의 나머지 부분에서는 이 목록에 요약된 변수 형식 선언의 형태와 의미를 설명합니다.The rest of this section describes the form and meaning of declarations for variable types summarized in this list. 나머지 단원에서는 다음을 선언하는 방법을 중점적으로 설명합니다.In particular, the remaining sections explain how to declare the following:

변수 형식Type of Variable 설명Description
단순 변수Simple variables 정수 계열 또는 부동 소수점 형식의 단일 값 변수Single-value variables with integral or floating-point type
배열Arrays 형식이 같은 요소의 컬렉션으로 구성된 변수Variables composed of a collection of elements with the same type
포인터Pointers 다른 변수를 가리키고 값 대신 가변 위치(주소 형태)를 포함하는 변수Variables that point to other variables and contain variable locations (in the form of addresses) instead of values
열거형 변수Enumeration variables 명명된 정수 상수 집합의 값 하나를 보유하는 정수 계열 형식의 단순 변수Simple variables with integral type that hold one value from a set of named integer constants
구조체Structures 다양한 형식을 가질 수 있는 값의 컬렉션으로 구성된 변수Variables composed of a collection of values that can have different types
공용 구조체Unions 같은 저장소 공간을 차지하는 서로 다른 형식의 여러 값으로 구성된 변수Variables composed of several values of different types that occupy the same storage space

선언자는 프로그램에 정의될 이름을 지정하는 선언부입니다.A declarator is the part of a declaration that specifies the name that is to be introduced into the program. \*(포인터) 및 Microsoft 호출 규칙 키워드와 같은 한정자를 포함할 수 있습니다.It can include modifiers such as \* (pointer-to) and any of the Microsoft calling-convention keywords.

Microsoft 전용Microsoft Specific

다음 선언자에서In the declarator

__declspec(thread) char *var;  

char은 형식 지정자이고 __declspec(thread)*는 한정자이며 var은 식별자의 이름입니다.char is the type specifier, __declspec(thread) and * are the modifiers, and var is the identifier's name.

Microsoft 전용 종료END Microsoft Specific

값의 배열, 값에 대한 포인터 및 지정된 형식의 값을 반환하는 함수를 선언하는 데 선언자를 사용합니다.You use declarators to declare arrays of values, pointers to values, and functions returning values of a specified type. 선언자는 이 단원의 뒷부분에 설명되어 있는 배열 및 포인터 선언에 나타납니다.Declarators appear in the array and pointer declarations described later in this section.

구문Syntax

declarator:declarator:
  pointeropt direct-declarator  pointeropt direct-declarator

direct-declarator:direct-declarator:
  identifier  identifier
  ( declarator )  ( declarator )
  direct-declarator [ constant-expressionopt ]  direct-declarator [ constant-expressionopt ]
  direct-declarator ( parameter-type-list )  direct-declarator ( parameter-type-list )
  direct-declarator ( identifier-listopt )  direct-declarator ( identifier-listopt )

pointer:pointer:
  \* type-qualifier-listopt  \* type-qualifier-listopt
  \* type-qualifier-listopt pointer  \* type-qualifier-listopt pointer

type-qualifier-list:type-qualifier-list:
  type-qualifier  type-qualifier
  type-qualifier-list type-qualifier  type-qualifier-list type-qualifier

참고

선언자를 참조하는 구문은 C 언어 구문 요약 또는 선언 개요에서 선언에 대한 구문을 참조하세요.See the syntax for declaration in Overview of Declarations or C Language Syntax Summary for the syntax that references a declarator.

선언자가 수정되지 않은 식별자로 구성되면 선언되는 항목에 기본 형식이 있습니다.When a declarator consists of an unmodified identifier, the item being declared has a base type. 식별자 왼쪽에 별표(\)가 나타나는 경우 형식은 포인터 형식으로 수정됩니다.If an asterisk (**) appears to the left of an identifier, the type is modified to a pointer type. 식별자 뒤에 대괄호([ ])가 올 경우 형식은 배열 형식으로 수정됩니다.If the identifier is followed by brackets ([ ]**), the type is modified to an array type. 식별자 뒤에 괄호가 올 경우 형식은 함수 형식으로 수정됩니다.If the identifier is followed by parentheses, the type is modified to a function type. 선언 내에서 우선 순위를 해석하는 방법에 대한 자세한 내용은 더 복잡한 선언자 해석을 참조하세요.For more information about interpreting precedence within declarations, see Interpreting More Complex Declarators.

각 선언자는 하나 이상의 식별자를 선언합니다.Each declarator declares at least one identifier. 선언이 완전하려면 선언자에 형식 지정자가 포함되어야 합니다.A declarator must include a type specifier to be a complete declaration. 형식 지정자는 배열 형식의 요소 형식, 포인터 형식으로 처리되는 개체의 형식 또는 함수의 반환 형식을 제공합니다.The type specifier gives the type of the elements of an array type, the type of object addressed by a pointer type, or the return type of a function.

배열포인터 선언에 대해서는 이 단원의 뒷부분에 자세히 설명되어 있습니다.Array and pointer declarations are discussed in more detail later in this section. 다음 예제에서는 몇 가지 간단한 형태의 선언자를 보여 줍니다.The following examples illustrate a few simple forms of declarators:

int list[20]; // Declares an array of 20 int values named list  
char *cp;     // Declares a pointer to a char value  
double func( void ); // Declares a function named func, with no   
                     // arguments, that returns a double value  
int *aptr[10] // Declares an array of 10 pointers  

Microsoft 전용Microsoft Specific

Microsoft C 컴파일러는 산술, 구조체 또는 공용 구조체 형식을 수정할 수 있는 선언자의 수를 제한하지 않습니다.The Microsoft C compiler does not limit the number of declarators that can modify an arithmetic, structure, or union type. 이 수는 사용 가능한 메모리에 의해서만 제한됩니다.The number is limited only by available memory.

Microsoft 전용 종료END Microsoft Specific

참고 항목See Also

선언 및 형식Declarations and Types