끄적끄적

반응형

7. #include 


외부 파일을 프로그램보다 먼저 처리하여 컴파일 하라는 문장입니다. 

C컴파일러의 헤더파일을 살펴보면 우리가 사용해 왔던 라이브러리 함수의 원형이나 구조체 변수 등이 선언되어 있습니다. 

#include문을 써서 헤더파일을 프로그램 내에 포함시키면 라이브러리 함수나 많이 쓰는 매크로 또는 변수들을 따로 선언해 둘 필요 없이 편리하게 사용할 수 있게 됩니다. 

사용자가 직접 헤더파일을 작성하여 불러 올 수도 있습니다. 

 

 

 #include 사용형식 

형식

#include <파일명>

#include <stdio.h> 

컴파일러에 지정된 헤더파일 위치에서 찾음

#include "파일명"

#include "stdio.h" 

현재 작업 디렉토리에서 찾음

 

 

8-15 실습예제 (사용자가 작성한 헤더파일 불러오는 프로그램) 

void KOR(int y,int m, int d) 

    printf("\n%d년%d월%d일", y,m,d); 

 

 

void USA(int y,int m, int d) 

    printf("\n%2d-%2d-%2d\n", y,m,d); 

}

먼저 위의 코드를 헤더 파일로 작성하여 date.h로 저장합니다. 

그 후 다시 새로운 파일을 불러서 아래와 같은 코드를 작성하고 실행을 시키면 됩니다.

 

 

 

 

 

 

 

 

 

 

메인 파일에 작성 

#include<stdio.h> 

#include "date.h" 

void main() 

    int year, month, day; 

    P("년도 입력? "); 

    scanf("%d", &year); 

    P("월 입력?"); 

    scanf("%d", &month); 

    P("일 입력?"); 

    scanf("%d", &day); 

KOR(year, month, day); 

USA(year, month, day); 

}

년도 입력? 2005 

월 입력? 10 

일 입력? 25 

2005년 10월 25일 

2005-10-25 

위의 프로그램은 date.h 라는 헤더파일에서 KOR 이라고 하는 함수를 이용해서 2005년 10월 25일 형태로 출력하게 해주고 USA라는 함수가 2005-10-25 형태로 출력하게 해 주었습니다. 

따라서 이 헤더 파일을 포함시켜 컴파일 하게 되면 위와 같은 출력결과가 나오게 된 것입니다. 

8-16 앞에서 작성한 커서 이동함수를 헤더파일로 정의하고 구현한 프로그램 

Move.h 

#include <windows.h> 

void gotoxy(int x, int y) 

     COORD Cur; 

     Cur.X=x; 

     Cur.Y=y; 

     SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),Cur); 

 

 

int wherex() 

     CONSOLE_SCREEN_BUFFER_INFO BufInfo;      GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE),&BufInfo); 

     return BufInfo.dwCursorPosition.X; 

int wherey() 

     CONSOLE_SCREEN_BUFFER_INFO BufInfo;      GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE),&BufInfo); 

     return BufInfo.dwCursorPosition.Y; 

 

 

main.c 

#include <stdio.h> 

#include "Move.h" 

int main() 

    int x, y; 

    gotoxy(30, 10); 

    x = wherex(); 

    y = wherey(); 

    printf("x좌표:%d y좌표:%d\n",x,y); 

    return 0; 

}


반응형
Please Enable JavaScript!
Mohon Aktifkan Javascript![ Enable JavaScript ]