C 언어에서 Declarations과 definitions 차이점이.

wan2sky의 이미지

정확히 어떻게 다른 것이죠.

참고자료를 봐도 딱히 이해가 안되네요.

대충 Declarations은 컴파일러에게 함수나 변수를 선언했다는 것을 알리고,
definitions은 컴파일러에게 함수나 변수를 (here)에 만들어라.

라고 되어 있는데

설명 해주실 분 계신가요.

xster의 이미지

C 함수에서
int function(int arg);
이건 선언이구

int function(int arg)
{
    return 0;
}

이게 정의가 되겠네요.

변수에서는
extern int variable;
이게 선언
int variable = 10;
이게 정의가 되겠지요.

정의는 실제로 요소가 존재하는 부분이고 선언은 그 요소가 존재한다는 걸 알리는 부분이라고 생각하면 될 것 같습니다.