Я знаю, что эту длинную строку легче читать, но я этого не хочу!
Я хочу получить цвет пикселя, и я использую SDL. Хотя это не очень актуально для вопроса …
http://www.gamedev.net/topic/502040-sdl-get-pixel-color/
http://www.libsdl.org/docs/html/sdlsurface.html
Показывает, что для получения этого значения цвета, вы делаете:
Uint32 *pixels = (Uint32 *)surface->pixels;
return pixels[ number ];
Ну, у меня нет этого просто так, и я также хотел попытаться понять весь приоритет операторов ..
Я немного попробовал, но не могу заставить его работать с последним оператором [].
Итак … я получил это:
vector<Class*>* pointer_To_A_Vector_With_Pointers;
Class.h:
vector<Class2*>* get_Another_Vector();
Class2.h
SDL_Surface* sdlSurface;
SDL_Surface.h
has the pixels-arrayUint32 value = *(Uint32*) (* pointer_To_A_Vector_With__Pointers[i]->get_Another_Vector() )[i2]->sdlSurface->pixels;
и это должно быть эквивалентно тому, чтобы сказать это:
Uint32 *pixels = (Uint32 *)surface->pixels;
Это работает, но только получает самый первый цвет массива пикселей. Но я хочу добиться этого ([число] в самом конце строки):
Uint32 value = *(Uint32*) (* pointer_To_A_Vector_With__Pointers[i]->get_Another_Vector() )[i2]->sdlSurface->pixels[ number ];
Другими словами, я хочу самый последний оператор [], sdlSurface->pixels[numbers]
включены.
приоритет []
выше, чем *
, так:
*pointer_To_A_Vector_With__Pointers[i]->get_Another_Vector()
должно быть:
(*pointer_To_A_Vector_With__Pointers)[i]->get_Another_Vector()
как подсказывает название вашей переменной
Других решений пока нет …