함수를 만들 때는 선언과 정의로 분류됩니다. 말 그대로 정의란 함수가 가지고 있는 코드를 예기합니다. 그냥 정의만 할 수는 있습니다. 한 번 예시 프로그램을 보실까요?
int add(int a, int b){ return a + b; } int main(){ add(1, 2); return 0; }
이렇게 할 수도 있는데, 조금 불편하죠? main함수가 프로그램의 중심이니까 가장 위에 왔으면 좋겠는데, 만약 add함수의 정의가 뒤로 가면 컴퓨터는 인식을 못하고... 그래서 선언이라는 것이 생겼습니다.
int add(int a, int b); int main(){ add(1, 2); return 0; } int add(int a, int b){ return a + b; }
위에 일단 저렇게 있으면, 컴파일러(코딩을 0101로 바꾸는 시스템)는 '아 일단 add가 있구나'하고 넘어갑니다. 나중에 main함수에서 add를 선언하면 코드 뒤에로 가서 add의 정의를 보고 다시 돌아와서 코드를 실행합니다. 딱히 쓸모있는 건 아닌데, 정리할 때 좋겠죠.