🏷️선언
- 명칭을 가질 수 있는 요소(함수, 대상체, etc)와 적절한 명칭 사이의 관계를 임플리멘테이션에게 알려주는 것이다.
- 몇몇 예외를 제외하고 프로그램 안에서 사용되는 모든 명칭은 프로그래머가 적절한 곳에서 직접 선언해야 한다.
"이 명칭을 이런 개념으로 프로그램 내에서 사용하겠다"
하고 밝히는 것이다.
- 즉, 단순히 언어적 요소에 이름만 붙여주는 작업이다.
🏷️정의
- 어떤 명칭을 대상체의 이름으로 사용하기 위해서는 메모리에 적절한 크기의 공간을 마련해 그 대상체가 값을 저장하는 데 사용할 수 있도록 허락해줘야 한다.
- 마찬가지로 어떤 명칭을 함수의 이름으로 사용하기 위해서는 메모리 어딘가에 함수의 내용이 들어갈 공간을 마련하고 그 공간에 함수의 내용을 넣어야 한다.
- 이렇게 대상체나 함수를 위해 공간을 준비하고, 준비된 공간에 적절한 내용을 채워넣는 작업을 정의(definition)이라고 한다.
- 정의는 대상체와 함수에 대해서만 의미가 있다.
- 대상체나 함수의 정의는 선언을 동반하지만, 선언은 정의를 동반하지 않는다.
- 어떤 대상체나 함수를 위해 공간을 마련하고 그 내용을 적절히 채우는 행동(정의)는 자동으로 해당 요소(함수, 대상체)에 그 명칭을 연결하여 알리는 역할(선언)까지 하지만, 단지 알리는 것(선언)만으로는 그런 준비(정의)가 되지 않는다는 뜻이다.