c언어의 모듈화는 각각의 소스파일과 헤더파일을 나눠 모듈시키는 것이다.
분류는 이런식으로 되어있으며 소스로는
app.c
//******************************************************************
// app.c
// --> 프로그램의 메인 구동
// --> 메인메뉴를 출력하고 입력하는 메인루프를 구현 !!
//******************************************************************
//메뉴를 화면에 출력해주는 함수
#include "bit_6.h"
#include "function.h"
void MemuDisplay()
{
puts("1. 1번기능");
puts("2. 2번기능");
puts("3. 3번기능");
puts("0. 종료");
}
// 사용자에게 정수 하나를 입력 받아 리턴하는 기능
int inputNo()
{
int No;
printf("INPUT :");
scanf("%d",&No);
return No;
}
//입력받은 값에 따라서 선택적인 실행을 하게 하는 함수 !!
void selectMenu(int key)
{
switch(key)
{
case 1:
function1(); break;
case 2:
function2(); break;
case 3:
function3(); break;
case 0:
exit(0);
default:
puts("잘못된 값");break;
}
}
void Run()
{
int key =0;
while(1)
{
MemuDisplay();
key = inputNo();
system("cls");
selectMenu(key);
puts("계속하시려면 아무키나 누르세요!!");
getch();
}
}
bit_6.c
//***************************************************************************************
// 모듈화
//***************************************************************************************
// header 파일
// 미리 선언된 것들(함수, 구조체, 변수, 기존 include 등등
// 모아두는 파일 !!
#include "bit_6.h"
#include "app.h"
// <> : C언어에서 지원해주는 헤더파일을 불러올때 사용
// "" : 사용자가 작성한 헤더파일을 불러올때 사용
// ==> 폴더가 다르다 !!, <> : 시스템 폴더, "": 프로젝트 폴더
void main()
{
//메인함수는 상징성으로 아무것도 넣지말자.
Run();
}
void PorntTest()
{
printf("ㅋㅋㅋㅋ");
}
function.c
#include "bit_6.h"
void function1()
{
puts("1. 1번선택");
}
void function2()
{
puts("2. 2번선택");
}
void function3()
{
puts("3. 3번선택");
}
app.h
//app.h
void MemuDisplay();
int inputNo();
void selectMenu(int key);
void Run();
bit_6.h
//***************************************************************************************
// main.h
//***************************************************************************************
// header include
//***************************************************************************************
#include
#include
#include
void PrintTest();
// <> : C언어에서 지원해주는 헤더파일을 불러올때 사용
// "" : 사용자가 작성한 헤더파일을 불러올때 사용
// ==>
function.h
void function1();
void function2();
void function3();