진짜 개발자
본문 바로가기

Language/C

C - 8. 함수

728x90

함수(function)란 간단히 말해 기능이라고 한다 
조금더 깊이 말하자면 프로그램내의 변수를 이용하여 어떠한 행동을 통해 변수의 값을 바꾸는 행위를
말한다

*형태
          ex) 덧셈의 결과를 반환하는 함수.                  

             int            add            (   int     num1     ,    int     num2   )  {
      (1.반환형)     (2.함수명)        (3. 파라미터1        ,      파라미터2)
                       return       num1         +          num2;                
                        (반환)                 ( 함수 내용)
             }

      1. 반환형 : 반환형 자리에는 함수의 결과로 외부에 보내줄 자료의 형을 써주면된다
                       int,float,double,byte 등의 기본 자료형일 수도 있고
                       나중에 배울 구조체역시 반환형이 될 수 있다
                       만약 반환할 자료가 없다면 'void' 로 사용하면 된다

      2. 함수명 : 함수명은 말그대로 사용자가 붙혀줄 함수의 이름이다 
                       함수의 첫글자는 영문소문자로 시작하게 짓는것을 지향하도록한다
                       숫자나 특수문자로는 시작할 수 없고 첫글자 이후부터는 가능하다
                      *특히 미리 프로그램에 지정되어있는 예약어는 함수명으로 사용할 수 없다.

      3. 파라미터 : 파라미터는 외부에서 함수의 호출시 함수내에서 사용될 전해줄 값들을 말한다 
       
      4. return : 함수를 끝내기 위해서 return; 으로 사용되어지기도 하고  반환형이 void형이 아닌
                        다른 자료형이라면 return '반환자료'; 로 자료를 반환할 수 있다
                       *return이 사용되면 그곳에서 함수는 끝이나므로 그밑에 코딩을한다면 
                       unreachable오류가 날 수 있다.

       5. 함수내용 : 함수내용은 말그대로 함수를 통해서 할 행동을 명시하면 된다.


*종류

1. 사용자 정의 함수 - 사용자 정의 함수란 사용자의 필요에 의해 프로그램내에 사용자가 직접 선언과 
                                  정의를 한 함수를 말한다

2. 라이브러리 함수 - 출력, 입력 , 제곱근 등 프로그램을 만드는데 있어서 자주 사용되는 프로그램을
                               미리 만들어 사용자에게 제공되는 함수들을 말한다

*이유

우리가 덧셈을 하는 경우 굳이 함수를 만들지 않아도 main() 함수 내에서 '+' 기호를 통해 덧셈의
결과를 쉽게 얻을 수 있음을 알 수 있다 그런데 굳이 사용자 정의 함수를 만들어 사용하는 이유가 뭘까?
               
                 1. 가독성 - 함수의 작명이 잘되어 있다면 코드의 위치에 함수를 사용 하므로써 함수 한줄로
                                  많은 코드를 대체하게 되어 코드를 읽기가 쉬워진다.

                 2. 중복의 감소 - 자주 사용되는 코드를 함수화 한다면 그 코드를 반복해서 사용하지 않고
                    (재사용성)      만들어 놓은 함수를 다시 사용하므로써 중복을 감소 시킬 수 있고
                                          엄청나게 긴 코드를 작성 해놓았는데 그 코드가 이곳 저곳에서 약간의
                                          변화만을 가진채 계속 사용된다고 했을때 함수를 사용함으로써 
                                          재사용성의 효과를 얻을 수 있다.

                 3. 모듈성 - 코드가 모듈화가 잘 되어있다면 예를들어 공장에서 모든 사람들이 공통된 여러
                                 일들을 모두가 다같이 하는 것이 아니고 각자 부분별로 분담하여 일이 이루어 
                                  지고 있다면 A부분에서 오류가 난다면 B부분에 영향을 미치지 않고 A부분에서만
                                오류를 해결한다면 그공장은 계속해서 잘 운영이 될 것 이다 
                                 이처럼 함수는 코드를 모듈화 하는 성질을 가지고 있다.

'Language > C' 카테고리의 다른 글

C - 7. 반복문(for, while, do while)  (0) 2018.09.05
C - 6. 제어문 (Switch)  (0) 2018.09.05
C - 5. 조건문  (0) 2018.09.05
C - 4.1 scanf와 scanf_s  (0) 2018.09.05
C - 4. 입력(scanf)  (0) 2018.09.05