신규 블로그를 만들었습니다!

2020년 이후부터는 아래 블로그에서 활동합니다.

댓글로 질문 주셔도 확인하기 어려울 수 있습니다.

>> https://bluemiv.tistory.com/

1. 함수란

특정기능을 하는 코드 블럭이라고 생각 할 수 있다. 기능에 따라 함수를 만들어 재활용해서 다시 사용할 수 있다. 그리고 함수 내부에서 또 다른 함수를 호출 할 수도 있다. 여러 이유로 함수를 사용하면 복잡한 기능도 비교적 쉽게 구현할 수 있다.

 

 

 

 

함수를 만들때는 함수의 이름, 매개변수(input), 반환값(output)을 이용해서 만든다.

 

int add(int x, int y)

{ // 함수 시작

int sum = x+ y;

return sum; // 반환값

} // 함수의 끝

 

int : 반환값의 자료형

add : 함수의 이름

int x, int y : 매개변수(arguments)

return sum : 반환값

 

참고로 main의 매개변수는 void(공허) 이므로, 매개변수가 없어도 실행이 가능하다는것을 알 수 있다.

 

하지만, 항상 함수가 반환값을 가지는것은 아니다.

연산만 할뿐 반환값이 없는 함수도 존재한다.

반대로 인자가 없이 실행되는 함수도 있다. 그중 하나가 main 함수이다.

 

2. 함수 종류

표준함수와 내가 만드는 사용자 정의 함수가 있다. 표준함수는 printf(), scanf_s()와 같이 기본적으로 만들어져있는 함수다. 그래서 그냥 사용만 하면 된다. 반대로 사용자 정의 함수는 내가 만드는 함수로 함수를 선언하고 정의한뒤에 사용할 수 있다.

 

사용자 함수를 만들때는 2가지 방법이 있다.

main 함수 전에 바로 함수를 선언하고 정의하는 방법이 있고, 나머지 하나는 main함수 전에 선언만 하고(원형 함수) main함수 뒤에 함수를 정의하는 방법이 있다.

 

#include <stdio.h>
 
// 함수 만드는 방법 1
int add(int x, int y)
{
    int sum = x + y;
    return sum;
}
 
// 함수 만드는 방법 2 (선언)
int sub(int x, int y);
 
// main 함수 : 프로그램 실행시 가장 먼저 실행되는 함수
int main(void) {
    
    int num1 = 10, num2 = 20;
    int result = 0;
 
    // 함수가 반환해주는 값의 자료형과 담을 그릇역할의 변수 자료형이 같아야 함
    result = add(num1, num2);
    printf("%d\n", result);
 
    result = sub(num1, num2);
    printf("%d\n", result);
 
    return 0;
}
 
// 함수 만드는 방법 2 (정의)
int sub(int x, int y) {
    int result = x - y;
    return result;
}​

 

 

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기