alias 수정자

alias 수정자

프로시저나 함수에 다른 이름을 부여하고 싶을 때가 있어요. alias 수정자는 프로시저나 함수에 대해 다른 이름을 지정할 수 있게 해줘요.

출처: Free Pascal Reference - alias

본문

alias 수정자는 프로시저나 함수에 다른 이름을 지정할 수 있게 해줘요. 이것은 주로 어셈블리 언어 구문이나 다른 객체 파일에서 이 프로시저를 참조할 때 유용해요. 다음 프로그램을 예로 들어 볼게요.

Program Aliases;


Procedure Printit;[public, alias:'DOIT'];
begin
  WriteLn ('In Printit (alias : "DOIT")');
end;


Procedure myprint; external name 'DOIT';

begin

asm
  call myprint
end;

end.

참고: 지정된 alias는 어셈블리 코드에 그대로 삽입되므로 대소문자를 구분해요.

alias 수정자는 그 자체로는 심볼을 다른 모듈에 공개하지 않아요. 루틴이 유닛의 interface 부분에 선언되어 있거나, public 수정자로 강제로 공개하지 않는 한 그렇지 않아요. 다음을 보세요.


unit testalias;


interface


procedure testroutine;


implementation


procedure testroutine;alias:'ARoutine';
begin
  WriteLn('Hello world');
end;


end.

이렇게 하면 testroutine 루틴이 ARoutine이라는 레이블 이름으로 외부 객체 파일에 공개적으로 사용 가능해져요.

참고: alias 지시자는 더 이상 권장되지 않아요(deprecated). 대신 public name 지시자를 사용하세요. 자세한 내용은 14.9.17절(823페이지)을 참고하세요.

더 알아보기

  • public 수정자와 public name 지시자(14.9.17)를 함께 살펴보면 좋아요.
  • 어셈블리 언어와 연동할 때 심볼 이름이 어떻게 매핑되는지 이해하는 데 도움이 돼요.