C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[11947] Re:[질문/컴파일러] 지역 변수와 상수, 전역 변수
빌더조아 [] 1708 읽음    2001-10-20 13:54
const부분은 저도 잘 모르겠군요.

우선 지역변수는 말그대로 그 지역에서만 사용되는 변수입니다.
지역변수에는 자동변수와, 스태틱변수가 있는데요. 자동변수는
그지역에 들어설때 만들어(생성)지고, 그지역에서 벗어날때 없어(소멸)집니다.
스태틱변수는 그 지역에서 사용되는 건 맞는데, 프로그램이 시작할때
만들어(생성)지고, 프로그램이 끝날때 없어(소멸)집니다.
전역변수는 스태틱변수와 같이 프로그램이 시작할때 만들어지고,
프로그램이 끝날때 소멸되지만, 지역변수와 다르게 모든 곳에서 사용할수 있지요.

제가 지역이라고 부르는 곳은, 씨언어에서 '함수'내일수 있고,
함수 내에서도, '{' '}' 로 둘러쌓인 또다른 블럭일 수도 있지요.
전역변수에 static을 붙일수도 있는데, 이경우 그 변수의 사용은
그 파일에서만 사용할 경우입니다.

지역변수중 자동 변수는 스택에 저장이 됩니다.
스태틱변수와 전역변수는 힙에 저장이 됩니다.

const는 C언어에서는 변수를 선언할때 const로 선언을 해주면,
그 변수는 값이 변하지 않는다는 것을 지정하는 겁니다.
저장되는 위치는 메모리(우리가 사용하는 컴퓨터는 모든 응용프로그램의
기억장소가, 읽기쓰기가 되지만, 예전에 사용하던 컴퓨터중에는 기억장소가,
읽기만 되는 곳이 있습니다. 컴파일러가 const로 선언되었을경우,
읽기만 되는 곳에 변수를 위치시키기도 하였습니다.) 입니다.
여기서 변수는 모든 종류의 변수를 이야기합니다.

C++언어로 넘어오면서, const의 개념이 확장되었습니다.
const로 변수를 선언때, 컴파일러의 성능이 좋은경우(대부분의 컴파일러에서),
메모리에 저장을 하지않고, 상수(마치 DEFINE 문으로 정의한것처럼)와
같이 취급합니다. 물론 컴파일러의 성능이 떨어지는 경우는
C언어와 같이 취급합니다. 메모리로 저장합니다.

const는 변수앞에 선언되는 경우 말고도,
함수를 정의할때도 사용됩니다.


하늘마루 님이 쓰신 글 :
: 안녕하세요.
:
: 빌더의 경우 지역변수와 상수, 전역변수의 관리에 대해서 궁금해서 질문합니다.
: 예전에 터보씨 배울 때는 지역변수를 사용하더라도 메모리에서 떠나지 않고
: 있기 때문에 static을 쓸 수 있고, 메모리에서 떠나지 않으므로 많이 사용하지
: 않도록 해야 한다고 들은 것 같거든요. 아니면, static을 사용했을 때만 메모리에서
: 사라지지 않고 남아 있다고 했었나...??
:
: 그리고, const로 선언하면 컴파일하고 나서 실행시킬 때 메모리 한쪽을 변수처럼
: 차지하고 있는 겁니까?
:
: 또, 전역 변수를 선언하면 메모리의 어느 부분에 변수가 들어가는지 궁금하네요.
:
: 어렴풋이 기억나는건... 지역 변수는 스택에 저장된다. 전역 변수는 힙에 저장된다.
: 뭐 이랬던 것 같은데.
:
: 그럼...

+ -

관련 글 리스트
11933 [질문/컴파일러] 지역 변수와 상수, 전역 변수 하늘마루 1245 2001/10/20
11947     Re:[질문/컴파일러] 지역 변수와 상수, 전역 변수 빌더조아 1708 2001/10/20
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.