> Call By Value, Value and Result, Reference <
맨날 Call By Value, Call By Reference만 듣다가 Call By Value and Result는 처음 들어봤다...
DATA: c1, c2, c3. " 변수선언
c1 = c2 = c3 = 'A'. " 초기화
WRITE : / c1, c2, c3. " 결과참조를 위한 Print
PERFORM subroutine USING c1, c2, c3. " 함수호출
WRITE : / c1, c2, c3. " 결과참조를 위한 Print
FORM subroutine
USING
value(f1) " Call By Value
CHANGING
value(f2) " Call By Value and Result
f3. " Call By Reference
f1 = 'B'.
f2 = 'B'.
f3 = 'B'.
WRITE :/ c1, c2, c3.
WRITE :/ f1, f2, f3.
ENDFORM.
위와 같이 작성이 되었을 경우의 결과는??
A A A <-- 최초
A A B <-- 최초변수값 (Call By Reference 만 변경)
B B B <-- SubRoutine 변수값
A B B <-- 최초변수값 (Call By Reference, Call By Value and Result가 변경)
Call By Value는 통상적으로 쓰이듯이 값만 넘겨줄 뿐이다..
Call By Reference도 통상적으로 쓰이듯이 주소(?)를 넘겨줘서 값의 변화가 바로 적용된다..
Call By Value and Result는 값을 넘겨줘서 사용한 후 Sub Routine이 끝나면 결과로 값의 변화가 적용이 된다...
교육시간에 이거 적느라고 이후에 나오는거 못들었당.... ㅡㅡ;;
끝.