검색결과 리스트
글
계산기 프로그램을 몇개의 소스파일로 분해해 보자. main.c라는 파일에 메인 프로그램 stack.c 파일에 push.pop 과 그와 관련되는 변수들을 넣으며 getop.c라는 파일에 getop부분을 넣자 마지막으로 getch.c 파일에 getch 부분과 ungetch 부분을 넣어 모두 4개로 분리하도록 하자 이렇게 프로그램을 분리하여 각각 컴파일 한후 링크 과정을 통해 합치면 된다.
이때 중요한 것은 각 파일들 사이에 선언과 정의를 어떻게 해주냐 하는 점이다.각 파일에서 선언과정의를 해줄수도 있지만 공통되는 부분은 calc.h 라는 헤더파일에 모아 두고 필요할때마다 파일을 프로그램에 삽입시키면 매우 편리하다 (#include 대해서는 4.11절을 참조하라) 따라서 프로그램은 다음과 같이 구성된다
calc.h
#define NUMBER '0'
void push(double);
double pop(void);
int getop (char []);
int getch(void);
void ungetch(int);
main.c
#include <stdio.h>
#include <stdlib.h>
#include "calc.h"
#define MAXOP 100
main() {
...
}
getop.c
#include <stdio.h>
#include <ctype.h>
#include "calc.h"
getop() {
...
}
stack.c
#include <stdio.h>
#include "calc.h"
#define MAXVAL 100
int sp = 0;
double val[MAXVAL];
void push(double) {
...
}
double pop(void){
...
}
getch.c
#include <stdio.h>
#define BUFFSIZE 100
char buf[BUFFSIZE];
int bufp = 0;
int getch(void){
...
}
void ungetch(int){
...
}
그 파일에 꼭 필요한 정보만을 공통적인 헤더파일에 담을수 없으므로(파일에 다른정보가 필요할 수도 있으므로) 헤더파일 내에서 필요한 정보를 선택적으로 찾아내야 한다.이런 불편을 없애기 위해 여러개의 해더파일을 만들수 있지만 일반적으로 한개의 헤더파일에 모든정보를 저장하는 것이 효율적이고 가장 좋은방법으로 알려져 있다.그러나 매우 복잡한 구조를 가진 프로그램에서는 여러개의 헤더파일을 사용하기도 한다.
'프로그래밍 > C' 카테고리의 다른 글
4.7 레지스터 변수(Register Variables) (0) | 2014.11.02 |
---|---|
4.6 정적 변수(Static Variables) (0) | 2014.11.01 |
4.4 변수 범위 규칙(Scope Rules) (0) | 2014.11.01 |
4.3 외부변수(External Variables) (0) | 2014.11.01 |
4.2 정수가 아닌 값을 넘겨주는 함수(Functions Returning Non-integers) (0) | 2014.11.01 |
RECENT COMMENT