call by value/reference/value and results

rjdqn·2024년 7월 23일

abap

목록 보기
2/13
  • 이 함수 역할을 하는 Perform, form-endform 친구들은 서브루틴이라고 불린다
  • 보통은 같은 파일내에서 선언 안하고 다른 파일에서 선언하고 include로 불러온다.
  • FORM- ENDFORM 내에는 글로벌 변수를 사용하지 않는 게 좋다. (헷갈릴 수 있으므로)

call by value

원본값 변경 x

PERFORM test using gv_a.
write gv_a . " 10이 출력된다.

FORM test USING VALUE(pv_a). "call by value(using value(값))
  pv_a = 11.
ENDFORM.

call by value and results

카피해서 endform에서 원본에 붙여넣기

PERFORM test_ch CHANGING gv_a.
WRITE gv_a. "11이 출력된다.


FORM test_ch CHANGING VALUE(cv_a). "call by value and results
  cv_a = 11. "cv_a의 공간이 잡힌다.
  gv_a = 20.
ENDFORM. "endform 만났을 때 gv_a = cv_a 된다.

call by reference

주소값을 기준으로 움직이므로 원본이 변경된다.

PERFORM test_ref CHANGING gv_a.
write gv_a. "20이 출력된다.

FORM test_ref CHANGING p_a. "call by reference
  p_a = 11.
  gv_a = 20.
ENDFORM.

call by reference는 포인터 개념으로 이해하면 된다.

끝.

profile
대학생

0개의 댓글