Programming/C++

헤더파일 연결하는 시도...성공

OKOK 2017. 3. 10. 04:46

/* calculator.h : 추가된 파일

이라고 합니다 한번 시험 삼아서 그대로 실행 보도록 할게용*/


extern int cal_num;


double add(double a, double b);

double minus(double a, double b);

double multiple(double a, double b);

double divide(double a, double b);


/* calculator.c : 변경없음
이라고 합니다. 이것은 뭔가요. 그대로 해보고 제발 돌아가길...
보아하니 음 대략적으로 헤더파일에는 함수 프로토타입만 기입하고 
c 파일에는 몸통까지 기입하고 메인에서 불러서 사용하는 듯 합니다.
헤더의 하나 변수 선언 한 것은 무엇이지..?
*/

int cal_num = 0;

double add(double a, double b) {
cal_num++;
return a + b;
}

double minus(double a, double b) {
cal_num++;
return a - b;
}

double multiple(double a, double b) {
cal_num++;
return a - b;
}

double divide(double a, double b) {
cal_num++;
return a / b;
}


/*

cal_main.c : 일부 변경

일부 변경이 내가 자율적으로 변동 가능하다는 것을 뜻하는 것인가.

아니면 지난번 예제에서 조금 변동했다는 뜻인가.

단순하게 헤더파일은 이런 함수를 썼다고 알려주기만 하는 것 같은데?

*/


#include<stdio.h>

#include "calculator.h" // 사용자 정의 헤더 포함, c는 그냥 연결 안해도 알아서 링크 되는가봉가...


int main()

{

double a = 10.2;

double b = 2.1;


printf("plus:%f\n", add(a, b));

printf("miuns:%f\n", minus(a, b));

printf("divide:%f\n", divide(a, b));

printf("multiple:%f\n", multiple(a, b));


printf("total cal num:%d\n", cal_num);


return 0;

}


// 이렇게 사용해보니 조금 낫다. 헤더파일에 함수 프로토타입 작성하고, 한가지 의문이 cal_num 를 어디에 선언하고 초기화해야하는지 의문입니다. 왜 헤더파일에서 불러줘야 하는지 그것에는 딱히 사용하는 것 같지 않은데. 그래도 .c 파일과 쌍을 이루어야하는 것인가? 그렇게 하고 메인해서 불를때 내가 개인적으로 만든 것은 "" 으로 불러오면 된다네.