함수(Function)(1)


 함수는 입력된 값을 이용해 결과를 반환해 주는 프로그램 코드로, 앞에서 공부할때 썼던 main함수, scanf, printf 등도 함수에 속합니다. 함수의 종류는 시스템 정의 함수

(시스템 라이브러리)와 사용자 정의 함수가 있습니다.


- 반환값, 매개 변수

 반환값은 리턴값이라고 말하기도 하는데, 리턴할 값을 말합니다. 앞에서 공부하면서 거의 사용하지는 않았는데, 아래 처럼 int형으로 main함수를 사용했을때, "return 0;"이 함수 종료 후 0을 반환하겠다는 뜻입니다. 반환값이 필요없을때는 void로 써주면 됩니다.

------------------------------------------------------------------------------------------

int main() // 매개변수가 필요하지 않을때는 main 함수처럼 ()로 써주면 됩니다.
{
printf("hello \n");

return 0; // 함수 종료 후 0을 반환
}

------------------------------------------------------------------------------------------

 매개변수는 함수에서 사용할 인자값으로 쉽게 말해 형식이라고 생각하면 이해하기 쉽습니다. 아래 사용자 정의 함수의 코드에서 plus 함수와 multi 함수의 int a, int b가 매개변수입니다.

시스템 정의 함수 

 C언어에서 미리 정의해 놓은 함수로 scanf, printf 등이 있습니다. 헤더파일을 include하면 사용할 수 있습니다.


- 사용자 정의 함수

 사용자가 직접 정의하는 함수입니다. 함수의 모양을 선언하는 과정인 함수원형 선언과,  함수 구현 과정이 있습니다. 함수 원형 선언은 헤더파일 밑에, 함수 구현은 main 함수 밑에 하면됩니다. 아래 코드는 덧셈과 곱셈을 하는 함수 2개를 직접 정의해 구현해서 사용하는 코드입니다.

------------------------------------------------------------------------------------------

#include <stdio.h>
#pragma warning(disable:4996)

int a, b; // plus함수와 multi함수에서 쓸 a,b를 선언
int plus(int a, int b); // plus 함수 원형 선언
int multi(int a, int b); // multi 함수 원형 선언

int main()
{
int x, y; // 위에 a,b를 선언하지 않고 여기서 a,b로 선언해서 사용해도 무관
  int result; // 함수를 호출해 리턴값을 저장할 변수 선언

printf("x,y를 입력하시면 합과 곱이 출력됩니다. \n");
printf("x를 입력하세요 : ");
scanf("%d", &x);
printf("y를 입력하세요 : ");
scanf("%d", &y);
result = plus(x, y); // plus함수 호출 후 리턴값 저장
printf("%d + %d = %d \n", x, y, result);
result = multi(x, y); // multi함수 호출 후 리턴값 저장
printf("%d * %d = %d \n", x, y, result);

return 0;
} //close main()

int plus(int a, int b) // multi 함수 구현
{
return a + b; // 리턴값으로 a+b를 리턴
}

int multi(int a, int b) // multi 함수 구현
{
return a * b; // 리턴값으로 a*b를 리턴
}
------------------------------------------------------------------------------------------
 아래 그림이 위 코드의 결과입니다. 사실 아래 처럼 간단한 연산은 굳이 함수를 정의해서 사용할 필요가 없지만, 복잡한 연산이나 복잡한 처리는 사용자 정의 함수를 이용하면 좀 더 실용적인 코딩을 할 수 있을 것입니다.


* 출처 : 한국기술교육대학교 온라인평생교육원 C 프로그래밍_2 

          스타일 C프로그래밍 저.김종훈,김종진 출.WellBook




'언어 > C' 카테고리의 다른 글

[C] 매개변수 전달 방식  (0) 2016.12.20
[C] 함수(2)  (0) 2016.12.20
[C] 기타 제어문  (0) 2016.12.19
[C] 반복문  (0) 2016.12.18
[C] 조건문  (0) 2016.12.17

+ Recent posts