2.3 정의
일반적으로 선언은 식별자가 가리키는 오브젝트의 종류만 지정하고, 구체적인 값이나 오브젝트의 위치는 지정하지 않는다. 이러한 역할은 정의(definition)C가 담당한다.
TAKEAWAY 2.5 선언은 식별자를 지정하고, 정의는 오브젝트를 지정한다.
뒤에서 자세히 다루겠지만 실제로는 다소 복잡한 과정이다. 지금은 일단 변수를 항상 초기화한다고 가정한다. 초기화(initialization)란 선언 과정에 나올 수 있는 구문으로서, 선언 대상인 오브젝트의 초깃값을 지정한다. 예를 들어 다음과 같이 변수 i를 선언하면서 초깃값을 0으로 지정할 수 있다.
size_t i = 0;
C 언어에서는 이렇게 선언에 초기자(initializer)(이니셜라이저)를 함께 사용하는 방식으로 식별자에 오브젝트를 정의할 수 있다. 다시 말해 변수의 값을 저장할 공간을 제공하도록 컴파일러에게 지시한다.
TAKEAWAY 2.6 오브젝트는 초기화할 때 정의된다.
다음과 같이 앞에서 본 표현에 값을 담을 수 있다.
▲ 그림 2-2 size_t i = 0;을 배열로 나타냄