전역변수와 지역변수

언어로그/C/C++ 2011. 3. 27. 20:15




1. 지역변수(local variable)
지역변수는 변수가 선언된 블럭(Scope) 내부에서만 유효한 변수이다. 지역변수는 제어흐름이 해당 블럭에
 진입되는 시점에 생성되고 , 블럭을 빠져나가는 순간 소멸되는데 흔히 자동변수라 하여 auto라는 키워드가 붙지만, 
디폴트로 생략할 수 있다. 또한 동일한 범위(Scope)  내 있는 코드에서만 접근할 수 있으며 생성 시, 의미없는 값이
들어가 있기 때문에 사용전에 반드시 초기화를 해야한다. 




2. 전역변수(global variable)
전역변수는 프로그램 실행타입 내내 유효한 변수이다. main함수가 호출되기 전에 생성되어, 프로그램 종료시 메모리가
회수된다.  프로그램 어떤 영역에서도 접근할 수 있는 특징이 있으며,  생성시 자동으로 0으로 초기화가 이루어진다.




3. 지역변수와 전역변수는 어떻게 사용해야하나?
전역변수는 어떤영역에서도 데이터에 접근할 수 있기 때문에 데이터 공유에 유용하다.  하지만 프로그램 실행타임
동안 계속 사용되기 때문에 과하게 사용하면 메모리에 낭비를 가져온다. 또한 전역변수에 대한 변경은 그 변수를
사용하는 모든 함수에 파급효과를 미쳐서 강한 결합(tight coupling)의 겨로가를 가져온다. 그렇기 때문에  프로그램을
용이하게 하는 범위에서 최소한으로 사용하고, 그 외의 경우는 지역변수를 사용하는 것이 좋다. 

 

'언어로그 > C/C++' 카테고리의 다른 글

배열의 이해  (0) 2011.03.27
기억부류(Storage Class) / 변수  (0) 2011.03.27
전역변수와 지역변수  (0) 2011.03.27
함수의 이해  (0) 2011.03.27
포인터의 이해  (0) 2011.03.11
매크로, 연산자  (3) 2011.03.10