невозможно инициализировать GLfloat, ошибка «конфликтующие типы» - PullRequest
0 голосов
/ 07 апреля 2011

(iPhone) Потянув меня за волосы, просто пытаюсь объявить и установить глупую переменную. Вот код:

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));

Я получаю сообщение об ошибке «Элемент инициализатора не является постоянным».

Что действительно странно, так это то, что этот код работал нормально, когда он был внутри метода. Я переместил это из метода, и теперь это терпит неудачу. Что здесь происходит?

Ответы [ 2 ]

1 голос
/ 07 апреля 2011

При работе с global-scope операторы могут быть назначены только константным литералам.

// 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 голосов
/ 07 апреля 2011

Полагаю, что вы можете использовать что-то вроде

#define kPosun 44.0 
перед оператором реализации.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...