나는이 같은 C 헤더 파일이 ES1Renderer.m Sprite 인스턴스를 만듭니다. ES1Renderer의 렌더링 메톤에서 나는이 인스턴스의 draw 메소드를 호출하고 g_count 변수는 draw 메소드에서 정상적으로 계산됩니다 (draw에서 6 개의 g_addVertex (...) 함수 호출 후 값 6)아이폰의 목표 - C 전역 변수에 다른 값
Sprite 인스턴스 그리기 메서드가 호출 된 직후 ES1Renderer의 render 메서드에서 g_flush() 함수를 호출합니다. g_flush()에서 g_count 변수의 값은 0입니다. 6 개의 g_addVertex Sprite 클래스의 메서드를 그립니다.
왜 내가 g_count가 0으로 변경되는지 모르겠다. 그 값을 변경하는 다른 기능이나 그 사이에는 아무 것도 없다.
당신은 g_flush 메소드에서 g_count를 0으로 설정한다는 것을 알고 있습니다. –
g_flush의 첫 번째 줄은 NSLog (@ "count : % d", g_count)입니다. 그리고 디버그에서 커서를 g_count로 이동하면 6이 표시되지만 g_flush()에 들어가면 0을 표시합니다. (g_count = 0; 실행) – Dav1d
커서를 이동하면 NSLog의 g_count 변수 (@ "count : % d", g_count); 그것은 0을 보여줍니다.하지만 커서를 g_count 행으로 이동하면 정적 int g_count = 0; Renderer.h에서 6을 보여줍니다 ... 동일한 전역 변수 인 경우 왜 동일하지 않습니까? – Dav1d