ipwn
C) 함수란 ? 본문
함수란??
변수 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 |