Page 449 - Do it! 자료구조와 함께 배우는 알고리즘(C 언어, 3쇄)
P. 449
(1) 추가 (2) 삭제 (3) 검색 (4) 모두 삭제 (5) 덤프 (0) 종료 : 2
삭제할 데이터를 입력하세요.
번호 : 14 14를 삭제
(1) 추가 (2) 삭제 (3) 검색 (4) 모두 삭제 (5) 덤프 (0) 종료 : 5
00 :
01 : → 1(붉은꼬리)
02 :
03 :
04 :
05 : → 5(박현규)
06 : 해시 테이블의 내용을 출력
07 :
08 :
09 :
10 : → 10(지나)
11 :
12 : → 12(김영준)
(1) 추가 (2) 삭제 (3) 검색 (4) 모두 삭제 (5) 덤프 (0) 종료 : 0
보충수업 11-3 분할 컴파일과 결합
앞 절에서 작성한 프로그램은 하나의 소스 파일로 구현하였습니다. 그러나 이번처럼 많은 함수로 구성
된 큰 프로그램은 여러 개의 소스 파일로 분할해서 구현하면 개발하고 관리하기가 쉬워집니다. 그림
11C-2는 여러 개로 나눈 소스 파일로 실행 프로그램을 개발하는 순서를 요약하여 보여줍니다. 이런
작업을 일반적으로 ‘분할 컴파일’이라 하는데, 이렇게 하면 각 소스 파일은 개별적으로 컴파일되어 각
각의 객체 파일이 만들어집니다. 그리고 이러한 객체 파일과 라이브러리 파일에서 뽑아낸 printf 등의
함수를 연결하면(link) 최종 실행 프로그램이 완성됩니다. 분할 컴파일의 구체적인 순서는 프로그램을
실행하는 컴퓨터 환경에 따라 다르기 때문에 매뉴얼 등을 참조하며 컴파일하고 링크하면 됩니다.
소스 파일 A 객체 파일 A
링크
컴파일 실행 파일
소스 파일 B 객체 파일 B
printf 함수 등
라이브러리
[그림 11C-2] 분할 컴파일 순서
여러 개의 소스 파일로 분할하여 프로그램을 개발할 때는 무엇보다 결합(linkage)의 개념을 정확히 알
아야 합니다. 그림 11C-3을 보면서 살펴보겠습니다.
외부 결합
키워드 static을 붙이지 않고 정의하는 함수와 파일 유효 범위를 갖는 변수에 주어지는 특징을 외부 결
11•해시 449