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

C언어의 함수 개념 설명_8일차

by 썬's 2023. 2. 6.

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

저번 시간에는 변수에 대한 추가 설명을 했는데요..

이번 시간에는 함수를 나가기 전에 이 함수라는 게 뭔지 개념적인 부분을 먼저 설명드리겠습니다.

※제 수업은 이전주차에서 배운 개념을 재차 설명드리지 않습니다※

 


C언어와 함수

여러분들이 컴퓨터를 사용하시면, 화면상에 많은 파일들이 있을 겁니다.

이 파일의 개수가 점점 많아지면, 관리하기가 힘들어 파일을 폴더에 묶어 관리하면 편합니다.

 

프로그래밍 언어도 마찬가지입니다. C언어로 처리한 복잡한 표현법을 간단한 표현법으로 바꾸는 게 중요합니다.

예를 들어, 라면을 먹는다고 보겠습니다. 이를 프로그래밍 언어가 요구하는 형식으로 나열하면 다음과 같습니다.

  1. 물을 끓인다.
  2. 라면 봉지를 뜯는다.
  3. 끓인 물에 면과 수프를 넣는다.
  4. 끓인 라면을 맛있게 먹는다.

각각의 단계는 라면을 끓인다는 하나의 행위로써 볼 수 있지만, '라면을 먹는다'라는 목적을 달성하는 데 연속으로 이루어진 일련의 단계일 뿐입니다.

그렇기 때문에 매번 라면을 먹으려고 할 때마다 프로그래밍 언어로 다음과 같은 4단계를 일일이 나열하면, 번거로운 작업이 아닐 것입니다. 

라면 끓이는 과정
라면 끓이는 과정

그럼 이러한 일련의 단계를 하나의 작업으로 묶을 수 있다면 어떨까요??

아마 매번 라면을 먹기 위해 일련의 단계를 작성하는 것보다는 효율적일 것입니다.

이러한 프로그램의 명령문을 하나로 묶어서 사용하는 개념을 함수라고 합니다.

 

이제 C언어에서 함수 형태를 알아보겠습니다. 위에 라면 먹기를 활용해 작성해 보겠습니다.

하단 코드(?)는 아니지만 일단 여러분들의 이해를 돕기 위해 한글로 작성했는데요... 대략 이런 구조다라고 아시면 됩니다.

여기서 주제는 라면 먹기입니다. 그리고 괄호 안에 있는 냄비는 매개변수, 즉 라면을 먹을 수 있는 도구?라고 보시면 됩니다. 마지막으로 중괄호 안에 있는 것들은 라면을 먹기 위한 일련의 과정입니다.

라면 먹기(냄비)
{
  물을 끓인다;
  라면 봉지를 뜯는다;
  끓인 물에 라면과 스프를 넣는다;
  라면을 맛있게 먹는다;
}

어? 뭔가 익숙하지 않으신가요?? ㅎㅎ 저희는 이미 함수를 만나 봤습니다.

혹시나 기억이 안 나실까 봐 다시 소스코드를 가져오겠습니다. 1일 차 수업 때 셋팅법을 다시 가져오겠습니다.

여기서 main()도 일종의 함수입니다. 그렇지만 상단 코드와 같이 다른 함수와는 차이점이 있습니다.

main() 함수는 C언어로 작성한 함수들을 불러오는 곳입니다.

 

예를 들어 라면 먹기, 물 마시기, 샤워하기 등의 함수를 만드셨으면, 이 함수들을 어디서 호출해야 할까요?? ㅎㅎ

바로 main() 함수에서 생성한 함수를 호출할 수 있습니다. 

main() 함수는 '프로그램 시작 함수'로 특별한 함수라고 볼 수 있습니다.

앞으로 여러분들이 함수를 만드시면 무조건 main 함수에서 실행시켜야 합니다.

#include <stdio.h>
라면먹기(냄비)
{
  물을 끓인다;
  라면 봉지를 뜯는다;
  끓인 물에 스프와 면을 넣는다;
  라면을 맛있게 먹는다;
}

물 마시기(컵)
{
  컵을 준비한다;
  정수기 버튼을 누른다;
  물을 마신다;
}

청소하기(청소기)
{
  청소하기 전 먼지를 턴다;
  청소기 코드를 꼽는다;
  청소기 버튼을 누른다;
  청소를 한다;
}

int main()
{
    <라면 먹기>
    <물 마시기>
    <청소하기>
	return 0;
}

 

C언어를 사용하시다 보면, 이러한 함수를 정말 많이 생성하실 겁니다.

C언어 특성상 소스 코드를 함수 단위로 나눠서 작성하는 것에 특화된 언어이기 때문에, 보통 C언어 프로그램은 수많은 함수의 집합체로 이루어진 프로그램이라 보실 수 있습니다. 함수를 만드시면 다음과 같은 장점이 있습니다.

  • 현업에서 여러 사람이 소스 코드를 볼 때, 다른 프로그래머가 보기 편하다.
  • 일련의 명령문을 묶어서 관리하기 때문에, 작업하기 편하다.

오늘은 C언어에서 함수란 무엇인지 알아봤습니다.

이제 조금 함수에 대해 이해가 되셨을까요?? ㅎㅎ

그럼 다음 시간에는 함수를 직접 사용해 보는 시간을 가져보도록 하겠습니다.

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

댓글