본문 바로가기
IT 기술/C언어

C언어 함수(정의 및 호출) part1_9일차

by 썬's 2023. 2. 6.

안녕하세요 보글리아입니다.

저번 시간에는 함수에 들어가기 전에 함수란 무엇인지 개념적인 설명을 드렸습니다.

이번 시간에는 이제 함수를 직접 코드로 작성해 설명드리겠습니다.

※제 수업은 이전주차에서 설명한 개념을 재차 설명하지 않습니다※

 


1. 함수 정의하기

C언어에서 함수는 프로그래머가 직접 생성해야 합니다.

함수를 생성할 때, 생성할 함수를 어떤  기능으로 사용할지에 맞춰 이름을 정하셔야 합니다. 용도에 맞는 이름을 설정하셔야, 함수들을 서로 구별할 수 있습니다. 함수를 생성하는 단계는 다음과 같습니다.

  1. 함수의 이름 설정
  2. 함수의 자료형(반환형) 설정
  3. 함수의 매개변수(함수가 작업을 수행할 때 필요한 데이터) 설정
  4. 함수의 작업 내용 설정
  5. 함수의 반환값 설정

이를 소스코드로 보면 하단과 같습니다.

 

함수 이름은 add라고 지었습니다. add로 지은 이유는 매개변수인 a와 b를 더할거기 때문에  add라 지었습니다. 이처럼 함수 특징에 맞는 이름을 지어주셔야 나중에 코드 보실 때 이해하기 편합니다. 다음으로 저는 매개변수인 a와 b는 정수형으로 표현하기 위해 자료형을 int로 설정했습니다. 그리고 두 값을 더할거기 때문에 매개변수는 a와 b로 설정했습니다. 여기서 주의하실 점은 되도록이면 함수의 자료형에 맞춰 매개변수도 자료형을 맞추는 게 편합니다. 그리고 a와 b를 더한 결괏값인 result라는 변수도 마찬가지로 정수형 끼리 더한 값이라 소수가 나올 수 없어 int로 자료형을 잡아줍니다. 마지막으로 a와 b를 더한 결과 값인 return으로 result를 반환합니다. 여기서 return은 영어 단어 뜻대로 돌려준다. 즉 값을 반환한다라는 뜻입니다.

#include <stdio.h>

int add(int a, int b) // 자료형(반환형),  함수 이름,  (매개변수)
{
	int result = a + b; // 출력할 내용
	return result; // 반환값
}

int main()
{


	return 0;
}

 

 


2. 함수 호출하기

이제 함수를 만드셨다면, 이를 main() 문 안에서 호출해 보겠습니다.  main() 문은 프로그래머가 만든 함수들을 호출하는 공간입니다. C언어 특성상 함수의 집합체라 함수가 다른 함수를 호출하면 프로그램이 진행됩니다.

여기서 함수를 호출하는 함수를 호출자라 하고 호출되는 함수를 피호출자라 합니다.

예를 들어 main() 함수가 add() 함수를 호출하기 때문에, main() 함수를 호출자라 하고, 호출당하는 add() 함수를 피호출자라 합니다.

 

이제 함수를 호출해 보겠습니다.

하단 코드를 보시면, 먼저 main문 안에 int형 자료형을 가진 value1과 value2를 선언했습니다. 그리고 이 둘의 값을 각각 5와 7로 설정했습니다. 그리고 이 둘의 값을 더한 결과인 value3을 선언했습니다.

 

여기서 중요하게 보실게 바로 add(value1, value2) 부분입니다. value1은 add() 함수의 매개변수인 a로, value2는 b로 넘어갑니다. 그러면 value1 + value2는 곧 a + b가 되고 둘을 더한 결과 값이 12는 result로 간 결과, return으로 반환됩니다. 이 반환된 결과 같은 value3으로 가서 printf로 value3을 출력하면 함수 add에서 작업한 결과인 12가 나오게 됩니다.

 

이렇게 add 함수에서 작업한 값을 main함수에 돌려주고, 이 돌려받은 값을 반환값이라 합니다.

이 반환값은 생성한 함수에 return 부분에서 반환하는 기능을 담당합니다.

#include <stdio.h>

int add(int a, int b) // 자료형(반환형),  함수 이름,  (매개변수)
{
	int result = a + b; // 출력할 내용
	return result; // 반환값
}

int main()
{
	int value1 = 5; // a에 전달할 변수인 value1을 설정 후 전달할 값은 5
	int value2 = 7; // b에 전달한 변수인 value2를 설정 후 전달할 값은 7
	int value3 = add(value1, value2); // value1과 value2를 더한 결과 값을 반환할 value3 변수 설정

	printf("value1 + value2 = %d", value3); // 함수 add에서 반환값 출력

	return 0;
}

출력 결과
출력 결과

여러분들의 이해를 돕기 위해 상단 코드의 순서를 그림으로 표현해 보면 다음과 같습니다.

즉 함수가 호출되는 과정은 다음과 같습니다.

  1. main() 함수에 호출할 함수를 매개변수와 함께 작성
  2. 이 매개변수는 만든 함수로 가 함수 내 작업을 수행
  3. 수행한 결과 값을 main() 함수에 반환함

함수 출력과정
함수 출력과정


오늘은 C언어에서 함수를 생성하고 호출하는 것을 배워봤습니다.

다음 시간에는 함수에 세부적인 내용인 매개변수와 반환값을 추가적으로 알아보겠습니다.

C언어에서 함수는 아주아주 중요한 부분이기 때문에 꼭 이해하시고 넘어가셔야 합니다!!

긴 글 읽으시느라 고생 많으셨습니다~~

댓글