본문 바로가기
코스웨어/10년 시스템제어

시스템제어 3월 24일 업무일지 (1번 강정훈)

by 알 수 없는 사용자 2010. 3. 24.
728x90
반응형

-함수


#include <stdio.h>
int main()

{
  int iNum;
  



  iNum = printf ("666\n");
  printf ("%d\n", iNum);




  return 0;


}


printf함수의 반환값 - printf함수는 iNum의 갯수를 개행문자를 포함해서 출력.

- 함수는 반환형이 존재한다.
- void는 반환할것이 없다는 뜻이다.

함수의 호출과 실행
#include <stdio.h>
float average (int n1int n2); 
                  이름이 무엇이든 상관없음, 없어도 무관.


int main()
{
  int   num1; 
  int  num2;
  
  float avrg;

  printf ("Please enter an integer:  ");

  scanf ("%d"&num1);

  printf ("Please enter an integer:  ");

  scanf ("%d"&num2);

  avrg = average (num1, num2);

  printf ("The average of %d and %d is %6.3f\n", num1, num2, avrg);

  return 0;
   
}
  
  float average (int n1, int n2)
  {
    float avg;

    avg = (float)( n1 + n2 ) / 2;
    return (avg);

  }
  

함수호출시 문법체크 - 자료형확인

 
- 분할 컴파일 / build, make
: header파일, 함수파일 만들기


* main.c에 main함수 넣기



* average.c에 average함수 본체 넣기



* average.h에 average함수의 원형 넣기



cl /c main.c : main.obj 생성
cl /c average.c : average.obj 생성
cl main.obj average.obj : main.exe 생성

del main.obj : 도스창에서 main.obj가 삭제된다.

- 도스에서 빌드하는 방법 (betch file)
* go.bat 파일 생성해서 메모장을 이용해 아래의 내용을 입력한다. 

@ cl /c main.c 0> nul
@ cl /c average.c 0> nul
@ cl main.obj average.obj 0> nul

* 도스창에서 go를 입력하면 main.obj, average.obj, main.exe 파일이 생성된다.
> : redirection (자료를 넘겨준다)
nul : 화면에 필요없는 것들을 출력하지 않는다 (쓰레기통)
@ : 화면에 입력하는 것이 나타나지 않음 (cl 명령어가 나타나지 않는다)

- 리눅스에서 빌드하는 방법
* makefile 파일 생성(확장자 없음)

all :
        cl /c main.c
        cl /c average.c
        cl main.obj average.obj

* 도스창에서 make(리눅스 명령어:시그윈이 있어야 동작함)를 입력하면 main.obj, average.obj, main.exe 파일이 생성된다.
- VC에서 main.c, average.c, average.h 파일을 함께 실행시키면 저절로 컴파일되서 이용가능하게 된다. 

makefile 만들기CC = cl #컴파일러
FLAG = /c

all :
  @echo '-----------------------------Start---------------------------------------'
  $(CC) $(FLAG) main.c
  $(CC) $(FLAG) average.c
  $(CC) main.obj average.obj
  @echo '------------------------------End-----------------------------------------


# : 주석처리











728x90