구조적 프로그래밍의 네 번째 특징은 특정한 기능을 모듈화(module)할 수 있어야 한다는 것입니다. ‘모듈화’란 프로그래밍에서 별도의 기능을 함수(function)로 구현한다는 의미입니다.
C 언어의 코드는 모두 함수들로 이루어져 있습니다. 우리가 지금까지 작성한 C 언어 코드는 main()이라는 함수 안에서 작성하였습니다. 즉, C 언어는 하나 이상의 함수로 이루어져 있으며 처음 코드를 수행하는 시작 지점은 main() 함수부터입니다.
그렇다면 함수란 무엇일까요? 함수는 ‘마법 상자’라고 생각하면 됩니다. 어떠한 상자에 정보를 넣으면 우리가 원하는 결과가 나타나는 상자입니다. 예를 들어 어떤 상자에 임의의 값을 넣으면 10배가 된 값이 나오는 상자가 곧 함수라고 할 수 있습니다.
그림 3-5 | 함수는 마법 상자