C, C++
[C] 함수 문법 정리
개발공주
2021. 9. 25. 12:00
728x90
1. 함수 기본
#include <stdio.h>
void random(int input) {
printf("말머리 붙이기: %d\n", input);
}
int main(void) {
random(3);
random(5);
random(6);
return 0;
}
어떤 로직을 반복해서 처리하고 싶을 땐 함수를 따로 빼서 만든다. main 함수에서는 만들어 둔 함수를 불러와서 호출한다.
말머리 붙이기: 3
말머리 붙이기: 5
말머리 붙이기: 6
위와 같은 결과가 나온다.
2. 더하기 함수
#include <stdio.h>
int add(int a, int b) {
return a + b;
}
int main(void) {
printf("%d \n", add(10, 25));
return 0;
}
add 함수의 인자만 바꿔서 printf 로직을 여러 번 불러올 수도 있다.
3. 사칙연산 함수
#include <stdio.h>
void calculator(int a, int b) {
printf("%d + %d = %d\n", a, b, a + b);
printf("%d - %d = %d\n", a, b, a - b);
printf("%d * %d = %d\n", a, b, a * b);
printf("%d / %d = %d\n", a, b, a / b);
prinf("\n");
}
int main(void) {
calculator(10, 25);
calculator(4, 11);
calculator(12, 9);
return 0;
}
10 + 25 = 35
10 - 25 = -15
10 * 25 = 250
10 / 25 = 0
4 + 11 = 15
4 - 11 = -7
4 * 11 = 44
4 / 11 = 0
12 + 9 = 21
12 - 9 = 3
12 * 9 = 108
12 / 9 = 1
소스 맨 위에 불러오는 라이브러리 또한 내부적으로 다양한 함수를 패키지 형태로 만들어놓은 것이다.
4. 재귀 함수
자기 자신을 계속 불러오므로 무한루프가 발생할 수 있어 반드시 재귀 종료 조건이 필요하다.
팩토리얼
#include <stdio.h>
int factorial(int a) {
if (a == 1) return 1;
else return a * factorial(a - 1);
}
int main(void) {
int n;
printf("n 팩토리얼을 계산합니다. ");
scanf("%d", &n);
printf("%d\n", factorial(n));
return 0;
}
factorial 함수의 인자로 받는 값이 1일 경우에는 1을 리턴한다는 종료 조건이 있기 때문에 무한반복에 빠지지 않는다. 반복문을 이용했을 때보다 짧은 코드로 작성할 수 있다. 자기의 함수 이름이 함수 내부에 있으면 재귀 함수다.
n 팩토리얼을 계산합니다. 5
120
C언어는 함수로 시작해서 함수로 끝나는 언어라고 볼 수 있다. 프로그램의 실행이 main함수로 시작되고, main함수 내부에서 다른 함수를 불러오기 때문이다.
728x90