ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [C Language] 31. 지역변수 - C 언어
    CSE/C Language 2015. 7. 19. 13:20

    1. 지역변수의 특징 

     1) auto 라는 기억부류 지정자를 사용한다. 명시하지 않으면 자동으로 시스템이 auto 라고 인식하여 처리하기 때문에 일반적으로 명시하지 않는다.


     2) 지역변수는 절대 초기화되지 않는다. 그러므로 초기화는 프로그래머의 몫이다.


     3) 함수 안에서의 지역변수를 프로그래머가 초기화를 했다면 함수를 호출할 때마다 지역변수는 초기화된다.


     4) 지역변수는 함수의 내부에서 사용하며 함수 안에서만 존재의 의미가 있다. 다른 함수에서는 지역변수를 인식하지 못하기 때문에 다른 함수에서 사용하면 문법 에러를 유발한다.


     5) 지역변수를 정의한 함수가 끝나면 지역변수는 자동적으로 메모리에서 사라진다.


     6) 지역변수는 스택(stack)이라는 메모리 위치에 저장된다.




    2. 지역변수의 사용 예


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    /*
     * local.c
     *
     *  Created on: 2015. 7. 18.
     *      Author: Yeonsu
     */
     
    #include <stdio.h>
     
    int add(intint);
     
    int main(void) {
     
        int i; // main 함수 안에서 정의되어 있으며, main 함수 내에서만 사용가능하다.
     
        for (i = 0; i < 10; i++)
            printf("result %d\n", add(i, i));
     
        return 0;
    }
     
    int add(int x, int y) {
     
        int result = 0// add 함수내의 지역변수로 add 함수가 끝나면 메모리에서 사라진다.
     
        result = x + y;
     
        return result;
    }
     
    cs












    3. 왜 지역변수를 사용하는가?

     지역변수는 함수 안에서만 유효하다. 함수를 벋어나면 사용할 수 없으니 이를 어기면 문법 에러가 되기 때문에 실행파일이 생성되지 않는다. 함수 안에서만 사용할 수 있으므로 지역 변수에 문제가 발생하면 함수 안에서만 문제점을 찾으면 된다. 또한, 함수가 끝나면 자동으로 메모리에서 해제되기 때문에 메모리 해제에 대해 프로그래머가 일일이 신경 쓸 필요가 없다. 이러한 개념 때문에 지역변수를 사용한다는 것은 '안전'과 밀접한 관련이 있다. 현재 기억부류에 대한 개념이 없는 초보자라면 당분간은 지역변수만 사용하자.




    댓글

Designed by Tistory.