Q&A

  • 인자(parameter)에 대해서...
예를 들어...



function GetNameFromDirLine(Line: String; Var IsDirectory: Boolean; const Status: Boolean): String;

...

...

end;



위에 보면 인자가 다양하게 설정이 되어 있는데요, 어떤건 변수명만 또 어떤건 var를 앞에 적어주고 또 어떤건 const를 붙여줍니다. 근데 이게 어떤 차이인지 모르겠습니다.



보통 변수를 선언할때 var를 사용하고 상수를 설정할 때 const를 사용하는데,

인자에서는 무슨 차이인지 모르겠습니다. 대충 생각을 해보면 const라고 정의를

하면 C에서 처럼 함수내에서는 그 값을 바꾸지 못하게 하고 싶을 때 쓸것 같은데

다른 것들은 도대체 무엇에 쓰는 걸까요...??



궁금합니다.

1  COMMENTS
  • Profile
    장원준 2001.10.17 20:32
    자문자답이군요...(ㅡ.ㅡ;)



    인자(parameter)



    세가지 형식으로 인자를 받을 수 있다.



    function GetNameFromDirLine(Line: String; Var IsDirectory: Boolean; const Status: Boolean): String;



    1) 일반형



    위에보면 Line이라는 인자가 있는데 이것은 GetNameFromDirLine함수에서 사용할

    변수(Line)를 정의 해서 값을 저장합니다. 이것은 지역변수입니다.



    2) 참조형



    위에서 var IsDirectory 가 이에 해당합니다.

    C++에서 레퍼런스로 인자를 받아들이는 것과 같습니다.

    GetNameFromDirLine에서 IsDirectory변수를 수정하면 원래값도 수정됩니다.

    예를 들어

    GetNameFromDirLine(Line, DirName, uStatus)

    라고 함수를 호출했을 때 IsDirectory의 값을 변경하면 DirName의 값도 변경됩니다.



    3) 상수형



    Status변수가 이에 해당합니다.

    이 변수값은 이 함수내에서는 결코 바꿀 수 없습니다.







    장원준 wrote:

    > 예를 들어...

    >

    > function GetNameFromDirLine(Line: String; Var IsDirectory: Boolean; const Status: Boolean): String;

    > ...

    > ...

    > end;

    >

    > 위에 보면 인자가 다양하게 설정이 되어 있는데요, 어떤건 변수명만 또 어떤건 var를 앞에 적어주고 또 어떤건 const를 붙여줍니다. 근데 이게 어떤 차이인지 모르겠습니다.

    >

    > 보통 변수를 선언할때 var를 사용하고 상수를 설정할 때 const를 사용하는데,

    > 인자에서는 무슨 차이인지 모르겠습니다. 대충 생각을 해보면 const라고 정의를

    > 하면 C에서 처럼 함수내에서는 그 값을 바꾸지 못하게 하고 싶을 때 쓸것 같은데

    > 다른 것들은 도대체 무엇에 쓰는 걸까요...??

    >

    > 궁금합니다.