float x;
float easing = 0.01;
void setup(){
size(220,120);
smooth();
}
void draw(){
float targetX = mouseX;
x += (targetX-x) *easing;
ellipse(x,40,12,12);
println(targetX + " : " +x);
}
이렇게 하면 마우스의 x 좌표값을 따라서 원이 x좌표로 움직이는데
이해 안가는게 전역 변수로 x를 선언만 하고 값은 안줬잖아 근데 draw 함수 내부에 x += (targetX-x) *easing 라는 식이 어떻게 성립됨?
풀어 쓰면 x = x+ (targetX-x) *easing 이 될테고 targetX는 마우스x 좌표값이고 easing은 0.01의 값이 있는데 x의 초기값은 설정이 안되있는데 왜
이게 오류가 안나고 작동하는지 이해가 안감 .. 알랴져
전역 변수로 선언된 변수는 자동으로 0으로 초기화 됨. 궁금하면 값 찍어 보던가.
아하 그렇군요 감사합니다
초기화 안되는 번수는 스택 메모리에 할당되는 지억 변수 뿐임. 활성 레코드 (스택 프레임)가 오르락 내리락 하면서 전에 다른 함수가 썼던 공간을 또 지역 변수 공간으로 쓰기도 하니까.