ipwn

C) 함수란 ? 본문

Programming

C) 함수란 ?

ipwn 2017. 12. 18. 15:01

함수란??


변수 x와 y 사이에 x의 값이 정해지면 따라서 y값이 정해진다는


관계가 있을 때, y는 x의 함수라고 합니다.


이건 이미 알고있는 사실 중 하나일 것 입니다.


그런데 프로그래밍과 함수와는 무슨 관계가 있을까요?


함수(function)란?


함수란 영어 function에서 온 말인데 이 뜻은 "기능"을 뜻합니다. 


즉, 기능을 구현하는 부분을 따로 떼어 구현하는 것으로,


구조화 프로그램의 중요한 개념이라 하겠습니다.

일단 저에게도 익숙하고 모두에게도 익숙한 main함수로 예를 들어보겠습니다.

함수는 이 그림과 같이 반환 자료형, 함수 이름 , 인수 목록으로 나뉘어 집니다.



반환 자료형이란 메인함수에서


1
return 0;
cs

위 코드의 부분을 보면 0을 반환한다라는 것을 알 수 있죠 


정수형을 반환하므로 int로 쓰였습니다.

그리고 함수 이름은 main 함수의 경우 프로그램 실행시


장 먼저 실행되는 부분이므로 꼭 필요한 함수로 변경할 수 없지만


사용자 정의 함수의 경우에는 사용자가 지정해줄 수 있습니다.

그리고 인수 목록 부분에는 보통 아무것도 쓰여있지 않지만


사실 괄호 안에 void가 생략된 상태입니다.​

함수의 종류??​


​함수의 종류에는 사용자 정의 함수와 라이브러리 함수가 있는데요,


먼저 사용자 정의 함수란, 사용자가 구현하고 싶은 기능을 구현하는 것 입니다.


변수의 경우처럼 함수의 특성을 잘 살린 이름을 지으면 되는 그런 함수입니다.


다음으로 라이브러리 함수 우리가 흔히 쓰는 함수인데요,

우리가 흔히 써오던 printf(); 함수 scanf(); 등의 함수가 그 예인데요


이런 기본적인 라이브러리 함수들을 사용하기 위해서 


#include<stdio.h>와 같이 헤더파일을 include 해 준다는 걸 알 수 있습니다.


사용자 정의 함수는 이해가 어려울 수 있을것 같아서 예제를 한번 쉽게 짜 봤습니다.

1
2
3
4
5
6
7
8
9
10
11
#include<stdio.h>
int plus(int n1,int n2) {
    return(n1 + n2);
}
int main() {
    int num, num1,sum;
    scanf("%d %d"&num, &num1);
    sum = plus(num,num1);
    printf("%d", sum);
    return 0;
}
cs


위와 같은 형태인데요 간단하게 설명을 해 보자면 먼저 


함수의 반환형태의 자료형을 적어 주고 함수명을 적어준 뒤 


괄호 안의 공간에는 매개 변수들을 작성해준 뒤 


함수 내에서 실행 될 작업들을 적어 준 뒤 마지막에는 return 반환값 과 같은 형태로


마무리 해주어 함수가 끝나고 어떤 값을 반환하여 함수를 종료할지


적어주어 함수를 생성할 수 있습니다.


(물론 이와 달리 void형 함수는 반환형이 없다는 걸 의미하기에 return값을 


적어줄 수 없습니다.)



위에 작성해놓은 코드의 실행 결과는 위와 같은데요, 


실행결과를 보게 되면 매개변수로는 n1, n2가 적혀 있는데, 저 n1, n2의 위치에 


num, num1의 변수의 값을 넣어주어 그 둘의 값을 합친 뒤 


합쳐진 값을 반환한다는 것을 알 수 있습니다.


이상 함수의 대한 설명이었습니다.

'Programming' 카테고리의 다른 글

C) 코드업 함수문제 풀이  (0) 2017.12.18
C) swap 함수 구현  (0) 2017.12.18
C) 포인터  (0) 2017.12.18
C) strlen, strcmp, strcpy 함수 조사 및 구현  (0) 2017.12.18
C) 배열, 2차원 배열이란?  (0) 2017.12.18
Comments