2010년/3월
3월 24일 함수와redirection
뽀얀햄스터
2010. 3. 24. 09:35
-함수-
-average.c- 파일
#include"average.h"
float average(int ione, int itwo)
{
float favgr;
favgr=(float)(ione+itwo)/2;
return favgr;
}
-main.c-파일
#include<stdio.h>
#include"average.h"
int main()
{
int inum;
int isunum;
float favg;
printf("please enter an integer: ");
scanf("%d",&inum);
printf("please enter an integer: ");
scanf("%d",&isunum);
favg =average(inum,isunum);
printf("The average of %d and %d is %6.3f\n",inum,isunum,favg);
return 0;
}
-average.h-파일
//float average(int ione, int itwo);
float average(int z1, int z2);
원래 하나의 main()함수에 다들어있지만 다 따로 분리해서 할경우 visul c++에서는 실행이 가능하다. 하지만 DOS창에서 실행하려면 에러가 걸린다. 이는 따라 연결해주는 파일없다 이 연결가능하게 해주는 파일을(betch file)
go.bat 파일을 생성후 편집모드에서 아래와 같이 넣었다.
@cl /c main.c 0>nul
@cl /c average.c 0>nul
@cl main.obj average.obj 0>nul
이렇게 되면 @는 우리가 쓰는 cl 명령어를 보여주지않는다. 그리고 >(redirection을 통해) nul(휴지통느낌)에다가 정보를 넘긴다. 이렇게 되면 한번에 실행이 다된다 하지만 visul c++에서는 헤드파일과 소스파일에 다 넣게 되면 무리 없이 된다. 이건 visul c++기능이다 하지만 dos창에서 betch file를 만들어서 해야하기때문에 우리가 하려면 어렵다.
마찬가지로 리눅스에서
makefile을 생성한후 편집모드에서
all:
cl /c main.c
cl /c average.c
cl main.obj average.obj
이렇게 입력할경우~ DOS창에서 make(nmake) 명령어를 치면 간단하게 할수 있다. 이건 시그윈을 깔아서 해야 할수있는 리눅스 명령어이다.
CC = cl #컴파일러
FLAG = /c
all:
@echo "----------------------------------------------------------"
@echo "-----------------------S T A R T--------------------------"
@echo "----------------------------------------------------------"
@echo "-----------------------S T A R T--------------------------"
@echo "----------------------------------------------------------"
$(CC) $(FLAG) main.c
$(CC) $(FLAG) average.c
$(CC) main.obj average.obj
$(CC) $(FLAG) average.c
$(CC) main.obj average.obj
@echo "----------------------------------------------------------"
@echo "--------------------------E N D--------------------------"
@echo "----------------------------------------------------------"
@echo "--------------------------E N D--------------------------"
@echo "----------------------------------------------------------"
이런게 있다고 알면된다. 나중에 쓰게 될 것이니깐~ ㅠ