ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 파트 1 함수
    C언어 2018. 2. 1. 01:27

    함수란 ? 특정 작업을 수행하는 코드의 집합이라고 할 수 있다.

     

    함수의 기본 요소

     

    출력 형태     함수 이름    입력 형태

       int            main         (void)

    {                            -함수의 시작

    함수의 기능        

    }                            -함수의 종료

     

    함수의 형태 네 가지

     

    출력 형태가 있으면 1 없으면 0

     

    입력 형태가 있으면 1 없으면 0

     

    1- 11형태

     

    int sum(int x, int y)

    {

    int result=0;

    result=x+y;

    return result;

    }

     

    출력 형태 

    있음(int) =>1 

    입력 형태 

    있음(int x, int y) =>1 

    해석 

    x, y를 입력받아 sum() 함수의 기능을 처리하고 int형으로 출력 

    특이점 

    출력 형태가 있어서 함수 내에서 반드시 return 문을 사용해야 한다 

     

    2- 10형태

    int input(void)

    {

    int num=0;

    scanf("%d",&num);

    return num;

    }

     

    출력 형태 

    있음(int) =>1 

    입력 형태 

    없음(void) =>0 

    해석 

    입력받는 값 없이 input() 함수의 기능을 처리하고 int 형으로 출력

    특이점 

    출력 형태가 있어서 함수 내에서 반드시 return 문을 사용해야 한다

     

    3- 01형태

    void print(int x)

    {

    int a=x;

    printf("%d',a);

    return;

    }

     

    출력 형태 

    없음(void) =>0

    입력 형태 

    있음(int x) =>1 

    해석 

    값 하나를 입력받아 printf() 함수의 기능을 처리하고 출력은 하지 않는다.

    특이점 

    출력 형태가 void이므로 함수 내에 return 문이 없어도 됩니다. 

     

    4- 00 형태

    void output(void)

    {

    printf("hello");

    printf("world");

    return;

    }

    있음(int) =>1

     

    출력 형태 

    없음(void) =>0

    입력 형태 

    없음(void) =>0

    해석 

    입력받는 값 없이 output() 함수의 기능을 처리하고 출력은 하지 않는다

    특이점 

    출력 형태가 void이므로 함수 내에 return 문이 없어도 됩니다. 

     

    함수 적용 방법

     

    함수의 정의 => 함수의 호출

     

    ex)

     

     

    함수의 선언 => 함수의 호출 => 함수의 정의

     

    ex)

     

     

    함수의 선언을 했기 때문에 함수의 호출에서 위에 함수가 있다고 판단해서 함수의 동작이 정상적으로 수행된다. 선언을 통해 함수의 개수를 쉽게 분석할 수 있고, 대략적으로 기능을 분석 할 수 있기 때문에, 가장 일반적인 방법으로 사용된다.

     

    변수의 종류와 범위

     

    -지역 변수(Local Variable) : main() 함수, 조건문, 반복문의 중괄호 내부와 함수의 매개 변수로 사용되는 변수.

     

    초기화를 하지 않으면 쓰레기 값이 저장됨

    지역 변수의 메모리 생성 시점 : 중괄호 내에서 초기화할 때

    지역 변수의 메모리 소멸 시점 : 중괄호를 탈출할 때

     

    -전역 변수(Global Variable) : 전역변수와는 다르게 중괄호 외부에 선언되는 변수

     

    초기화는 상수여야 하고, 초기화를 하지 않아도 자동으로 0이 저장됨.

    전역 변수의 메모리 생성 시점 : 프로그램이 시작될 때

    전역 변수의 메모리 소멸 시점 : 프로그램이 종료될 때

     

    -정적 변수 ( Static ) : 전역 변수처럼 프로그램이 종료되지 않는 한 메모리가 소멸되지 않고, 특별히 초깃값을 지정하지 않아도 자동으로 0을 가진다. (반드시 상수로 초기화)

    ex) static int num;

     

    초기화는 딱 한 번만 진행됨.

     

    함수의 내부, 조건문, 반복문 등과 같이 중괄호가 있는 지역에서 전역 변수의 기능을 갖고 싶을 때 사용합니다.

     

    정적 지역 변수의 메모리 생성 시점 : 중괄호 내에서 초기화될 때

    정적 지역 변수의 메모리 소멸 시점 : 프로그램이 종료될 때

     

    -외부 변수(Extern) : 의미대로 외부 파일에 선언된 변수를 참조하여 사용하는 변수.

     

    ex) extern int num1; // 외부 변수 선언 : 다른 파일에 있는 int num1을 참조

     

    -레지스터 변수(Register) : 레지스터에 변수를 할당하여 값을 저장하는 변수.

     

    처리속도가 빠르다는 장점이 있지만, 수가 제한되어  있어서 모자랄 수 있다.

     

    메모리의 생성과 소멸이 빈번한 변수들을 레지스터 변수로 사용하면 효율적이다.

     

    ex)반복문의 횟수를 검사하는 변수

     

    코드 영역, 스택 영역, 데이터 영역, 힙 영역

     

    코드 영역 - 프로그램의 실행 코드 또는 함수들이 저장되는 영역

     

    스택 영영 - 함수 호출에 의한 매개 변수와 지역변수 그리고 함수, 반복문, 조건문 등의 중괄호 네부에 정의된 변수들이 저장되는 여역

     

    데이터 영역 - 전역 변수와 정적 변수가 저장되는 영역

     

    힙 영역 - 프로그래머가 필요에 의해서 동적으로 메모리를 할당하는 변수들이 저장되는 영역

     

    재귀 함수(Recursive Function) : 함수 내에서 자기 자신을 호출하는 함수

     

    return 문을 이용한 재귀 호출

     

    ex ) 팩토리얼을 계산하는 재귀 함수

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    'C언어' 카테고리의 다른 글

    파트 1 조건문  (0) 2018.01.31
    파트 1 반복문  (0) 2018.01.31
    파트 1 자료형  (0) 2018.01.31
    파트 1 연산자  (0) 2018.01.31
    파트 1 상수  (0) 2018.01.30

    댓글

© 2018 TISTORY. All rights reserved.