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 "----------------------------------------------------------"
 $(CC) $(FLAG) main.c
 $(CC) $(FLAG) average.c
 $(CC) main.obj average.obj
 @echo "----------------------------------------------------------"
 @echo "--------------------------E N D--------------------------"
 @echo "----------------------------------------------------------"
이런게 있다고 알면된다. 나중에 쓰게 될 것이니깐~ ㅠ