흔히 합쳐서 루틴이라고 부르는 프로시저와 함수는, 프로그램의 다른 위치에서 호출할 수
있는 독립적인 문장 블럭입니다. 함수는 실행되었을 때 값을 리턴하는 루틴입니다. 프로시
저는 값을 리턴하지 않는 루틴입니다.
함수 호출은 값을 리턴하므로 대입문과 연산에서 표현식으로 사용할 수 있습니다. 예를 들면,

1.png

위 코드는 SomeFunction을 호출하고 결과를 I에 대입합니다. 함수 호출은 대입문의 왼쪽
에 나타날 수 없습니다.
프로시저 호출과 확장 문법 옵션이 활성화 ({$X+})되었을 때의 함수 호출은 완전한 문장
으로 사용될 수 있습니다. 예를 들면,

2.png

위 코드는 DoSomething 루틴을 호출합니다. DoSomething이 함수라면 리턴값은 버려집니다.
프로시저 및 함수를 재귀적으로 호출할 수 있습니다.



프로시저와 함수의 선언

프로시저나 함수를 선언할 때는 그 이름, 파라미터의 수와 타입을 지정하며, 함수의 경우에
는 리턴값의 타입을 지정합니다. 선언의 이 부분을 프로토타입, 헤딩, 헤더라고 합니다. 다
음으로 프로시저나 함수가 호출될 때마다 실행될 코드 블럭을 작성합니다. 선언의 이 부분
을 루틴의 바디 (body) 또는 블럭이라고 합니다.


프로시저 선언

프로시저 선언의 구조는 다음과 같습니다.

3.png

여기서, procedureName은 유효한 식별자이고, statements는 프로시저가 호출될 때 실행
되는 일련의 문장이며, parameterList, directives, localDeclarations는 옵션입니다.
다음은 프로시저 선언의 예입니다.

4.png

이와 같이 선언되었을 경우, 다음과 같이 NumString 프로시저를 호출할 수 있습니다.

5.png

이 프로시저 호출은 값“17”을 MyString (string 변수여야 함)에 대입합니다.
프로시저의 문장 블럭에서 해당 프로시저의 localDeclarations 부분에서 선언된 변수와 다
른 식별자들을 사용할 수 있습니다. 또 파라미터 리스트의 파라미터 이름을 사용할 수도 있
습니다(위 예제의 N이나 S). 파라미터 리스트는 지역 변수 정의와 동일한 역할므로
localDeclarations 영역에서 파라미터 이름을 재선언하면 안됩니다. 마지막으로, 프로시저
선언이 속한 유효 범위(scope) 내의 모든 식별자를 사용할 수 있습니다.
번호 제목 글쓴이 날짜 조회 수
공지 [DelphiCon 요약] 코드사이트 로깅 실전 활용 기법 (Real-world CodeSite Logging Techniques) 관리자 2021.01.19 15441
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 13962
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 16499
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 22055
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 23268
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 18923
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 39257
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 174713
110 Developer Direct LIVE! 모바일 썸머 스쿨!! 관리자 2013.07.06 2954
109 [기술백서] 모바일로 가면서 개발자가 하게 되는 실수 TOP5 (한글) 관리자 2013.07.06 4318
108 TListView iOS 샘플 제공 관리자 2013.06.28 4024
107 아이폰, 아이패드, 아이팟 앱 개발을 위한 파이어몽키 용 TMS 컴포넌트가 출시되었습니다. 관리자 2013.06.04 3786
106 IOS 앱을 개발하여 App Store에 등록하는 방법 관리자 2013.05.20 5405
105 델파이XE4로 아이폰, 아이패드, 윈32, 윈64, 맥OS X 단일 소스코드 베이스로 2분만에 개발 관리자 2013.05.13 5602
104 Delphi XE4에서 iOS 개발 환경 구축시 유의 할점. c2design 2013.05.11 5384
103 [웹세미나 안내] 델파이를 활용한 멀티-디바이스 앱 개발 관리자 2013.03.29 4636
102 멀티-티어 작업을 더욱 쉽게 만들어주는 Class Helper 관리자 2013.03.26 5000
101 델파이로 간단하게 슬라이드 효과를 적용한 iOS앱 만들기 관리자 2013.03.26 4957
100 [델파이 문법] 데이터 타입, 변수 및 상수 #4 file 관리자 2013.02.19 6376
99 [델파이 문법] 데이터 타입, 변수 및 상수 #3 file 관리자 2013.02.13 6736
98 [델파이 문법] 데이터 타입, 변수 및 상수 #2 file 관리자 2013.02.04 8235
97 [델파이 문법] 데이터 타입, 변수 및 상수 #1 관리자 2012.12.25 6980
96 [델파이 문법] 문법 요소 #15 file 관리자 2012.12.25 5392
95 델파이/C++빌더/RAD Studio XE3 업데이트1 다운로드 및 보완사항 리스트 관리자 2012.12.21 5194
94 [델파이 문법] 문법 요소 #14 file 관리자 2012.12.17 5358
93 [웹 세미나] RAD 따라잡기: 윈도우8 스타일 관리자 2012.11.27 4488
92 CodeRage7 : '델파이' 다시보기 관리자 2012.11.24 5261
91 [델파이 문법] 문법 요소 #13 file 관리자 2012.11.20 6109