본문 바로가기

C

[C언어] 함수(Function)

반응형

함수(Function)

- 자주 반복적으로 사용하는 기능이나 명령어를 하나의 이름으로 묶어서 사용하는 자료구조이다.

- 서로 관련된 명령어들의 집합이다.

- 필요에 의해 호출해서 사용한다.

결과형리턴값 함수명(매개변수 or 인수){

내용정의부;

return 수치 or 식;

}

1. 호출 방법

- Call By Name(이름에 의한 호출) : 매개변수 없이 함수의 이름으로 호출하는 행위이다.

- Call By Value(값에 의한 호출) : 함수를 호출할 때 매개변수를 통해 값을 전달하여 호출하는 행위이다.

- Call By Reference(참조(주소)에 의한 호출) : 함수를 호출할 때 매개변수에 값이 아는 주소를 전달하여 호출하는 행위이다.

2. 함수 구현 방법

- 리턴 값도 없고, 매개변수도 없는 형태

- 리턴 값은 없고, 매개변수는 있는 형태

- 리턴 값은 있고, 매개변수는 없는 형태

- 리턴 값도 없고, 매개변수도 있는 형태


#include<stdio.h>

int add(int, int);   // int add() 함수를 선언한다.
int bigger();        // int bigger() 함수를 선언한다.
                     // main에서 함수를 사용하려면, 선언을 먼저 해 주어야 한다.

int main(){

   int a = 10, b = 20, res = 0;

   res = add(a, b);   // add() 함수를 호출하여 반환값을 res에 저장한다.

   printf("%d + %d = %d\n", a, b, res);
   printf("10과 20 중 큰 수 : %d\n", bigger());
}

int add(int x, int y){   // return 값이 없을 때는 int add()가 아닌 void add()로 함수를 정의한다.
   return x + y;         // 'x + y'를 반환한다.
}

int bigger(){
   int x = 10, y = 20, big = 0;

   if(x > y)
      big = x;
   else
      big = y;

   return big;
}

 


#include<stdio.h>

void greeting(void){
   printf("안녕하세요.\n\n");

   return;
}

void star(int cnt){   // main()에서 'star(20)'를 호출하였다. 'cnt'에는 20의 값이 저장된다.

   for(int i = 0; i < cnt; i++)
      printf("*");
   printf("\n");
}

// main() 앞에 함수를 정의해 주어도 된다. But, 더 중요한 main()을 앞쪽에 두는 것이 더 좋다.

int main(){

   greeting();   // greeting() 함수 호출

   printf("오늘은 화요일입니다.\n");

   star(20);    // star() 함수 호출

   printf("내일은 수요일입니다.\n");
   printf("그리고 그 다음날은 금요일입니다.\n");

   return 0;
}

 

반응형