StartprogrammingusingObjectPascal:LocalVariables

From 흡혈양파의 번역工房
Revision as of 11:02, 4 April 2013 by Onionmixer (talk | contribs) (예제오류수정)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

지역 변수

변수들을 정의할 때, 프로시저나 함수 안에서만 사용할 수 있도록 지역적으로 정의할 수 있습니다. 이 변수들은 메인 프로그램 코드나 다른 프로시저 또는 함수에서 접근할 수 없습니다.

예제:

procedure Loop(Counter: Integer);
var
    i: Integer;
    Sum: Integer;
begin
    Sum := 0;
    for i := 1 to Counter do
        Sum := Sum + i;
    Writeln('Summation of ', Counter, ' number is:  ', Sum);
end;

begin  // Main program section
    Loop(3);
    Write('Press enter key to close');
    Readln;
end.


Loop 프로시저에는 Sum와 i 두 지역변수가 있습니다. 지역 변수는 프로시저의 실행이 끝나기 전까지 임시로 변수를 할당하는 메모리의 일부인 스택 메모리에 저장합니다. 이는 프로그램 실행이 코드의 이 줄에 도달할 때 지역변수에 접근할 수 없으며, 지역변수를 덮어쓸 수 있다는 것을 의미합니다.

Write('Press enter key to close');


전역 변수들은 메인 프로그램과 다른 프로시저 및 함수에서 접근할 수 있습니다. 이들은 프로그램이 끝날 때까지 값을 지닐 수 있습니다. 하지만, 프로그램의 구조를 깰 수 있으며, 오류를 추적하기 어렵게 만드는데, 우리가 전역 변수를 초기화 하는 것을 잊었을 때, 어떤 프로시저는 알 수 없는 값을 넣고 잘못된 행동을 취하도록 전역 변수 값을 바꿀 수 있기 때문입니다.


지역 변수를 정의하는 것은 전역 변수 값에 대한 걱정 없이, 프로시저와 함수를 어디든 이식하고 호출할 수 있도록 돕는 개별성을 보장합니다.