2011년5월3일...함수의 인수전달기법(call by value, call by reference), DK-128적외선센서응용실습, C과제
함수의 인수전달기법 |
함수의 호출에서 인수의 전달방법(parameter passing mechanism)은 값 전달호출(call-by-value)과 주소 전달호출(call-by-address)이 있다. (call-by-reference와 같은 의미) 값 전달 호출은 호출자가 실인수를 이용하여 피호출자의 형식인수에게 값을 건네주는 방법이다.
이 때 실인수는 변수나 상수 또는 수식이 될 수 있다. 값 전달 호출에서는 실인수는 피호출 함수의 실행에 의해서 영향을 받지 않는다.
주소 전달 호출은 호출자가 실인수를 이용하여 변수의 주소값을 피호출자의 형식인수에게 값을 넘겨주는 방법이다. 주소전달호출의 경우에는 피호출자가 변수의 주소를 이용해서 실인수의 값을 수정할 수 있다.
값 전달호출의 문제점 중 하나는 호출자는 여러 개의 인수를 사용해서 여러 개의 값을 피호출자에게 넘겨 주지만 , 피호출자는 return문을 이용해서 하나의 값만 호출자에게 돌려 줄 수 있다.
여러 개의 값을 반환하려면 주소 전달호출법을 사용해서 피호출함수가 받은 주소로 호출함수 변수의 값을 수정하는 수 밖에 없다.
1.call by value 2.call by reference
(참조)
call by value와 call by reference 프로그램의 실행시 stack비교 |
main :: A와 call_by_value :: p,
main :: A와 call by reference :: *p의 상관관계를 알아보자.
적외선센서입력처리법에 관한 연구 |
DK-128 적외선센서응용실습 |
1.적외선 센서로부터 감지 신호를 받으면,
LED를 전체 껐다가 감지 신호가 없으면 켜기
(설명)
2.적외선 센서로부터 감지 신호를 받을 때마다,
LED불빛이 좌측에서 우측으로 1칸씩 이동 시키기
3.적외선 센서로부터 감지 신호를 받을 때 마다,
FND 0에서 부터 1씩 증가
C과제 |