Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 정의와 선언의 차이점은 무엇입니까?

<시간/>

C++에서 선언과 정의는 종종 혼동됩니다. 선언은 (C에서) 컴파일러에게 유형, 크기, 함수 선언의 경우 모든 변수의 매개변수 유형 및 크기, 또는 프로그램의 사용자 정의 유형 또는 함수에 대해 알려주는 것을 의미합니다. 선언의 경우 변수에 대해 메모리에 공간이 예약되어 있지 않습니다.

반면에 정의는 선언이 수행하는 모든 작업 외에도 메모리에 공간이 추가로 예약되어 있음을 의미합니다. "DEFINITION =선언 + 공간 예약"이라고 말할 수 있습니다.

다음은 선언의 예입니다 -

extern int a;                           // Declaring a variable a without defining it
struct _tagExample { int a; int b; };   // Declaring a struct
int myFunc (int a, int b);              // Declaring a function

다음은 정의의 예입니다 -

int a;
int b = 0;
int myFunc (int a, int b) { return a + b; }
struct _tagExample example;