[C] 함수-Kyeom
2022. 11. 17. 22:18ㆍC언어/기본 개념
728x90
함수 기본 구성
- 함수명
- 매개변수(필요한 데이터)
- 반환형(결과 값의 자료형을 적어준)
변환형 함수명(매개변수1, 매개변수2)
{
함수가 수행하는 명령
}
이때까지 사용해왔던 int main(void) 와 같은 함수이다. printf, scanf도 마찬가지로 '표준라이브러리 함수'라고 한다.
새롭게 함수를 선언 하는 방법은 다음와 같다.
#include <stdio.h>
int main(void)
{
int a = 10, b = 20;
int result;
result = sum(a, b);
printf("%d", result);
}
int sum(int x, int y)
{
int temp;
temp = x + y;
return temp;
}
main 함수와 별개로 sum 함수를 만들어봤다. 함수 내에서 나온 값을 return해준다.
int sum(int x, int y)
int : 반환형
sum : 함수명
(int x, int y) : 매개변수
함수 상태
상태 | 예 | 설명 |
함수 선언 | int sum(int x, int y); | 함수의 형태를 알리고 원형에 세미콜론을 작성한다. |
함수 정의 | int sum(int x, int y) { return x + y; } |
반환 값의 형태, 이름, 매개변수 표시 후 안에 기능 작성 |
함수 호출 | sum(10, 20) | 함수 사용 |
매개 변수가 없는 함수, 반환값이 없는 함수, 둘 다 없는 함수
◎ 매개변수가 없는 경우
int sum(int x, int y); 괄호 안에 int x, int y 대신에 void를 작성해주면 된다.
호출 할 때는 void를 작성하지 않고 괄호만 작성하면 된다.
#include <stdio.h>
int get_num(void);
int main(void)
{
int result;
result = get_num();
printf("반환값 : %d\n", result);
return 0;
}
int get_num(void)
{
int num;
printf("양수 입력 : ");
scanf("%d", &num);
return num;
}
◎ 반환값이 없는 경우
반환형 자리에 void를 작성하면 된다. int sum(int x, int y); int 대신에 void를 작성해주면 된다.
#include <stdio.h>
void print_char(char ch, int count);
int main(void)
{
print_char('@', 5);
return 0;
}
void print_char(char ch, int count)
{
int i;
for (i = 0; i < count; i++)
{
printf("%c", ch);
}
return;
}
◎ 반환값과 매개변수 둘 다 없는 경우
매개변수, 반환값 자리에 void를 작성 하면 된다.
#include <stdio.h>
void print_line(void);
int main(void)
{
print_line();
printf("반환값과 매개 변수가 없는 함수입니다.\n");
print_line();
return 0;
}
void print_line(void)
{
int i;
for (i = 0; i < 50; i++)
{
printf("-");
}
printf("\n");
}
◎ 재귀호출 함수
함수 안에서 자신을 호출한다. 그렇게 되면 함수는 계속 반복 되는 것이다.
하지만 무한 호출은 되지 않는다. 이유는 프로그램 하나당 쓸 수 있는 메모리를 다 사용하게 되면 강제종료를 하기때문이다.
#include <stdio.h>
void fruit(void);
int main(void)
{
fruit();
return 0;
}
void fruit(void)
{
printf("apple\n");
fruit();
}
728x90
'C언어 > 기본 개념' 카테고리의 다른 글
[C] 포인터 (0) | 2022.11.21 |
---|---|
[C] 배열 - Kyeom (0) | 2022.11.18 |
[C] 반복문(break, continue) - Kyeom (0) | 2022.11.17 |
[C] if문 / switch ~ case문 (0) | 2022.11.16 |
[C] 연산자 - kyeom (0) | 2022.11.16 |