-
[C Language] 22. 함수(function)의 기본 - C 언어CSE/C Language 2015. 6. 13. 10:20
1. 함수의 구조
함수의 본체는 아래와 같은 구조로 되어 있다.
return_type function_name(args)
{
선언자;
수행문;
수행문;
...
}
return_type: function_name이라는 함수가 결과 값을 구한 후, 호출한 함수에게 넘겨주는 값에 대한 자료 형(data Type)을 뜻한다.
function_name: 말 그대로 함수의 이름이다.
args: function_name()을 호출할 때 넘겨주는 인자(arguments)를 지칭한다.
다음과 같은 형태로 함수를 사용할 수 있다.
1. int swap(int x, int y)
2. char *add(char *one, char *two)
3. int add(int x, int y)
4. void gugudan(int dan);
2. 매개변수
매개변수는 실 매개변수와 형식 매개변수로 나뉜다.
- 실 매개변수는 호출 시 사용되는 매개변수
- 형식 매개변수는 함수 본체에서 사용되는 매개변수
아래 예제를 통해 실 매개변수와 형식 매개변수를 살펴보자.
아래 예제는 구구단의 원하는 단을 입력하여 출력하는 예제이다.
main 에서보면 gugudan(dan) 부분에서 dan이 실 매개변수
int gugudan(int dan) 에서의 dan은 형식 매개변수이다.
1234567891011121314151617181920212223242526272829303132/** gogodan2.c** Created on: 2015. 5. 12.* Author: root*/#include <stdio.h>void gugudan(int dan);int main(void) {int dan;puts("Input number to print gugudan");scanf("%d", &dan);gugudan(dan);return 0;}void gugudan(int dan) {int i;for (i = 1; i < 10; i++)printf("%d x %d = %d\n", dan, i, dan * i);}cs 3. 리턴 값
어떤 함수를 수행하고 그 결과 값을 받을 수 있는데, 이를 함수의 리턴 값이라고 한다.
리턴 값은 호출한 함수에서 return 문을 사용했을 때 받을 수 있으며, 딱 하나의 값만을 받을 수 있다.
아래 예제를 통해 리턴 값이 어떻게 쓰이는 지 알아보자.
12345678910111213141516171819202122232425262728293031323334/*============================================================================Name : return.cAuthor :Version :Copyright : Your copyright noticeDescription : Hello World in C, Ansi-style============================================================================*/#include <stdio.h>int add(int, int);int main(void) {int x, y;int result;puts("Input two number to add");scanf("%d %d", &x, &y);result = add(x, y);printf("Result: %d", result);return 0;}int add(int x, int y) {return x + y;}cs 4. 함수를 작성하는 순서
함수를 작성하는 순서는 아래와 같다.
- 함수의 이름을 결정
- 리턴 타입을 결정
- 함수의 본체를 작성
- main()에서 작성된 함수 호출
지금부터 작성할 프로그램은 두 수를 받아 이 중에서 큰 수를 리턴하는 예제이다.
1. 함수의 이름을 결정
- 두 수를 입력받고 둘 중에서 큰 수를 찾아내는 함수이므로 more_than(), bigger_number(), compare_number() 등이 이름이 될 수 있다.
2. 리턴 타입을 결정
- 리턴 값은 정수이므로 int로 결정한다. 그러므로 함수 선언은 int bigger_number(int, int)가 된다.
3. 함수의 본체를 작성
- int bigger_number(int x, int y)
{
if (x > y) return x;
else if (x < y) return y;
else if (x == y) return 0;
}
일련의 작업을 통해 함수를 작성한다. 완성된 예제를 통해 살펴보자.
1234567891011121314151617181920212223242526272829303132333435363738394041/*============================================================================Name : function.cAuthor :Version :Copyright : Your copyright noticeDescription : Hello World in C, Ansi-style============================================================================*/#include <stdio.h>int bigger_number(int, int);int main(void) {int result;int x, y;printf("Input two number: ");scanf("%d %d", &x, &y);result = bigger_number(x, y);if (result == 0)puts("Two number is same.");elseprintf("Biggest number is %d.\n", result);return 0;}int bigger_number(int x, int y) {if (x > y)return x;else if (x < y)return y;else if (x == y)return 0;}cs * Programming in C 서적을 참고하여 작성하였습니다
'CSE > C Language' 카테고리의 다른 글
[C Language] 25. 함수 - 리턴 값 여러 개 받기 - C 언어 (0) 2015.06.13 [C Language] 24. 함수 - 참조에 의한 호출(Call By Reference) - C 언어 (0) 2015.06.13 [C Language] 23. 함수 - 값에 의한 호출(Call By Value) - C 언어 (0) 2015.06.13 [C Language] 21. 함수(function)란? - C 언어 (0) 2015.06.13 [C Language] 20. continue, break - C 언어 (0) 2015.06.13 [C Language] 19. for 문 - C 언어 (0) 2015.06.13