프린세스 다이어리

[C] 함수 문법 정리 본문

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
Comments