다음을 통해 공유


선언

선언은 새 이름을 프로그램에 지정합니다. 이 섹션에서 다루는 항목에는 다음과 같은 선언의 용도가 포함됩니다.

새 이름을 지정하는 용도 이외에 선언은 컴파일러에서 식별자가 해석되는 방법을 지정합니다. 선언은 식별자와 연결된 저장소를 자동으로 예약하지 않습니다. 정의는 저장소를 예약합니다.

참고

대부분의 선언은 정의이기도 합니다.멤버 목록이 없는 클래스 선언 및 함수 본문이 없는 함수 선언이 정의가 아닌 선언에 해당합니다.

다음 중 하나를 선언으로 사용할 수 있습니다.

[ decl-specifiers ] [ declarator-list ] ;

함수 정의

linkage-specification

template-specification

별칭 템플릿

explicit-template-instantiation

explicit-template-specialization

namespace-definition

namespace-alias-definition

alias-declaration

using-declaration

using-directive

asm-definition

선언의 decl-specifiers 구성 요소는 선택적 요소로 표시되어 있지만 클래스 형식이나 열거형의 선언에서만 생략할 수 있습니다.

declarator-list 구성 요소의 선언자에는 선언 중인 이름이 포함됩니다. declarator-list 구성 요소도 선택적 요소로 표시되어 있지만 함수 선언이나 정의에서만 생략할 수 있습니다.

참고

함수 선언은 대개 프로토타입이라고 합니다.프로토타입은 인수에 대한 형식 정보와 함수의 반환 형식을 제공합니다.또한 프로토타입을 통해 컴파일러는 올바른 변환을 수행하고 형식 안정성을 제공합니다.

선언자 바로 뒤, 이니셜라이저 앞(선택 사항)에서 이름이 선언된다고 간주합니다. 자세한 내용은 선언 지점을 참조하세요.

선언은 범위에서 발생됩니다. 범위는 선언된 이름의 표시 및 정의된 개체(있는 경우)의 기간을 제어합니다. 범위 규칙이 선언에 사용되는 방법에 대한 자세한 내용은 범위를 참조하세요.

개체 선언은 저장소 클래스 지정자에 설명된 extern 저장소 클래스 지정자가 포함된 경우를 제외하고는 정의이기도 합니다. 함수 선언도 프로토타입이 아니라면 정의입니다. 프로토타입은 정의 함수 본문이 없는 함수 헤더입니다. 개체 정의를 통해 해당 개체에 대해 저장소가 할당되고 적절한 초기화가 수행됩니다.

관련 항목

function-definition에 대한 내용은 C++ 함수 정의를 참조하세요.

linkage-specification에 대한 내용은 링크 사양을 참조하세요.

template-specification, explicit-template-instantiation 및 explicit-template-specialization에 대한 내용은 템플릿을 참조하세요.

namespace-definition 및 namespace-alias-definition에 대한 내용은 네임스페이스 (C++)를 참조하세요.

asm-definition에 대한 내용은 __asm을 참조하세요.

참고 항목

기타 리소스

C++ 언어 참조