Subprogram
- function(반환값 존재) , procedure(반환값 X) 두 종류가 있다.
- 하나의 entry point 존재
- 한 번에 하나의 프로그램만 실행 가능
- 하위 프로그램이 종료되면 호출자에게 control 반환
- 호출된 후 실행을 시작했지만 완료하지 못한 경우 → active 상태
Subprogram 의 부분
subprogram header
: 정의의 첫 번째 부분
- subprogram 이 어떤 종류인지 특정 → 예약어으로 표시(function…)
- subprogram 의 이름을 제공
- 매개변수의 목록을 표현
profile
: 이름 + 반환형 + parameter 의 수,순서,타입을 표현 (함수의 약력)
protocol
: 함수명(actual parameter) 로 호출하는것
prototype
: C, C++ 에서 함수의 원형을 말함
Parameter
-
non-method subprogram 이 데이터에 접근하는 방법은 두가지가 있다
- local 변수가 아닌 변수에 직접 접근한다. (전역변수같은)
- prameter 을 통해서 접근
-
Formal Parameter
- 정의부분에서 사용되는 매개변수, 호출될때 값이 할당이 된다.
-
Actual Parameter
-
매개변수 전달방식
int sumScore(int math, int eng);
sumScore(85,80); // Positional
sumScore(math=85,eng=80); // Keyword
- Positional Parameter
- 위치에 의해서 매개변수를 mapping 한다.
- Keyword Parameter
- 키워드를통해서 매개변수를 mapping 한다.
-
default value 를 가지게 할 수도 있다.
**def** compute_pay(income, exemptions = 1, tax_rate)
가변 매개변수 in C#
- 대부분의 언어에서 Actuall parameter 개수 = formal parameter 개수