'전역변수'에 해당되는 글 2건

  1. 2012.07.23 Objective C 전역 변수
  2. 2012.05.04 [제 4장]C# 지역변수 전역변수 에제 따라하기

외부 변수

만일 다음 명령문을 프로그램 초반에(메서드와 클래스 정의 그리고 함수 바깥에서)작성했다면 이 값은 그 모듈 어디서든 참조할 수 있다.

int gMoveNumber = 0;
이 경우에 gMoveNumber가 ‘전역(global)’ 변수로 정의되었다고 말한다. 명명규칙(convention)을 따르면 보통 전역 변수의 첫 글자로 g가 쓰인다. 이를 통해 프로그램 코드를 읽는 사람은 변수의 범위를 알게 된 다.
사실, 변수 gMoveNumber를 이렇게 정의하면 다른 파일에서도 이 값에 접근할 수 있다. 특히 앞의 명령 문은 변수 gMoveNumber를 global 변수만이 아닌 ‘외부’ global 변수로 정의한다.
‘외부’ 변수는 그 값을 다른 메서드나 함수에서 접근하고 도 바꿀 수도 있는 변수다. 외부 변수에 접근하 고 싶은 모듈에서 일반적인 선언 방식과 동일하게 변수를 선언한 다음 그 앞에 extern 키워드를 추가한 다. 이것은 시스템에게 보내는 일종의 신호다. 이렇게 하면 시스템은 다른 파일에서 전역으로 정의된 변수 에 접근해야 한다는 걸 알게 된다. 다음은 gMoveNumber를 외부 변수로 선언하는 방법을 다룬 예제다.

extern int gMoveNumber;
이 선언이 나오는 모듈은 이제 gMoveNumber에 접근하고 값을 수정할 수 있다. 다른 모듈도 파일에 비 슷한 방식으로 extern을 선언하여 gMoveNumber의 값에 접근할 수 있다. 

신고
Posted by Namseungil
C/Objective C/C#2012.05.04 17:36

- 지역 변수의 특징

· 함수 내부에서 선언 되며, 해당 함수 내부에서만 사용이 가능하다.

· 사용 될 당시 스택(stack)에 지역 변수의 공간이 할당되며, 함수가 리턴 되면 공간에서 소멸된다.

· 각 함수마다 같은 이름의 변수를 사용 할 수 있다.

· 초기화를 안할 경우 쓰레기값(garbage value)이 들어 있다.

- 전역 변수의 특징

· 함수 외부에서 선언되어 어떤 함수에서든 사용이 가능하다.

· 컴파일시 기억장소가 할당되어 프로그램이 실행부터 종료시까지 데이터가 존재한다.

· 지역변수와 달리 초기화가 필요없다. (값은 0)

신고
Posted by Namseungil

티스토리 툴바