我知道这个长字符串可以更容易阅读,但我不想要这样!
我想获取像素的颜色,并且我正在使用 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-array
Uint32 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()
正如你的变量名称所示。