2011-04-06 3 views
0

(iPhone) 선언하고 바보 같은 변수를 설정하려고하면 내 머리카락을 꺼냅니다. 코드는 다음과 같습니다.은 GLfloat를 초기화 할 수 없습니다. 'conflicting types'오류

const GLfloat zNear = 0.01, zFar = 1000.0, fieldOfView = 60.0; 
GLfloat size; 
size = zNear * tanf(DEGREES_TO_RADIANS*fieldOfView/2.0)); 

"크기가 충돌합니다."라는 오류 메시지가 나타납니다. 나는이 대신처럼 작성하는 경우

는 :

const GLfloat zNear = 0.01, zFar = 1000.0, fieldOfView = 60.0; 
GLfloat size = zNear * tanf(DEGREES_TO_RADIANS*fieldOfView/2.0)); 

나는 오류를 얻을, "이니셜 요소는 일정하지 않습니다."

정말 이상한 것은이 코드가 메소드 내부에있을 때 잘 작동한다는 것입니다. 나는 그것을 방법 밖으로 옮겼고, 이제는 실패합니다. 무슨 일 이니?

+0

귀하의 진술 끝에 말인가요?))? –

+0

'size'는 일반적인 변수 이름입니다. 그래서'name' 인스턴스 변수 나 그 이름을 가진 현재 스코프 내의 다른 변수가있을 수 있습니다 (과거에는 "충돌하는 타입"오류를 일으키는 것으로 나타났습니다). 'calculatedSize' 또는 다른 이름을 바꾸고 오류가 제거되는지 확인하십시오. –

답변

1

전역 범위을 처리 할 때 상수 리터럴에만 명령문을 지정할 수 있습니다.

// At global scope 
int a = 10 ; // fine 
int b = a ; // Not allowed 
b = a ;  // Not allowed 
b = 100 ; // fine 

const int aa = 10 ; // fine 
const int bb ; 
bb = aa ; // Not allowed 

용액 #define이다. 이것을 시도하십시오 -

#define zNear 0.01 
#define zFar 1000.0 
#define fieldOfView 60.0 

GLfloat size; 
size = zNear * tanf(DEGREES_TO_RADIANS*fieldOfView/2.0)); 
0

구현 문 앞에

#define kPosun 44.0
과 같은 것을 사용할 수 있습니다.

관련 문제