프로그래밍 언어/C

C언어 12강 사용자 정의 함수

happy_life 2020. 11. 1. 22:18

함수(function)

●정의:프로그램에서 특정한 작업을 수행하도록 따로 정의해 놓은 독립적인 프로그램의 단위

 

 

●목적: 1) 특정 작업을 함수로 처리하여, 반복을 줄이기 위해서

          2) 구조적 프로그램으로 모듈화 하여 프로그램의 작성과 수정을 용이하게 하기 위해서

          3) 다른 프로그래머에게 라이브러리를 제공하기 위해서

 

 

●종류: 1) 라이브러리 함수 2)사용자 정의 함수

  • 라이브러리 함수(Library Function): 컴파일러를 제작한 회사에서 제공하는 함수 ex) printf()
  • 라이브러리:컴파일된 기계어를 모아둔 파일
  • 사용자 정의 함수(User Defined Function):사용자가 필요에 따라 직접 만들어 사용하는 함수

●주의점: return 값은 함수 안에서만 사용할 수 있음!

 

사용자 정의 함수

 

문법

반환값자료형 함수이름()
{
    return 반환값;
}

●사용자 정의함수 코드 예제

#include <stdio.h>

int two()    // 반환값이 int형인 two 함수 정의
{
    return 2;    // 2을 반환
}

int main()
{
    int num1;

    num1 = two();    // int형을 반환했으므로 int형 변수에 저장

    printf("%d\n", num1);    // 2

    return 0;
}

 

결괏값

 

 

 

사용자 정함수(매개변수)

 

 문법

     반환 값의 데이터 타입      매개 변수
  ↙                        ↙
int add( int num1, int num2) ← add함수의 머리 부분

{
 int result;

 result = num1 + num2;      ←   add함수의 본문 부분
 return result; 
 
} 

주의점: 1) 반환 값의 데이터 타입 = 함수의 데이터 타입

          2) 사용자 정의 함수를 main() 함수보다 먼저 써주어야 한다.(뒤에 쓰면 인식 X)

 

●사용자 정의 함수(매개변수) 코드 예제

#include <stdio.h>

int add(int num1, int num2) 
{
	int result;  
	result = num1 + num2;
	return result;
 }

int main() {

	int a = 10, b = 20, hap;
	printf("★add함수 호출 프로그램★\n\n");

	hap = add(a, b);
	printf("%d와 %d의 합은 %d이다", a, b, hap);




	return 0;
}

결괏값

 

매개변수의 개념이 헷갈릴 수 있다. 

위의 코드에서  사용자 정의 함수의  add(int num1, int num2)에서는 어떤 값을 담기 위한 그릇 정도라고 이해하면 된다.

main() 함수에서 add(a, b)에서는 그 그릇에 넣을 실제 값이라고 이해하면 된다.