2016-06-13 3 views
0

SDL 라이브러리가있는 C로 그래픽 클라이언트를 만들고 있는데 SDL_Color 유형을 설정하려고 할 때 문제가 있습니다.C에서 SDL_Color를 초기화하는 방법은 무엇입니까?

25:11: error: expected expression before ‘{’ token color = {0, 0, 0};

내가 과부하 일부 연산자의 경우 C++에 꽤 좋은 답을 발견하지만 난 정말 안 두려워 :

SDL_Color color; 
color = {255, 255, 255}; 
/* rest of code */ 

다음 GCC는 나에게 말한다으로

나는 나의 변수를 선언 C에서이 문제를 해결하는 방법을 알고 있어야합니다.

답변

0

이와 같은 구조에는 값을 할당 할 수 없습니다. 당신은 당신의 구조를 초기화하는 데이 작업을 수행 할 수 있습니다

SDL_Color color = {.r = 255, .g = 255, .b = 255}; 

3 ways to initialize a structure를 참조하십시오 : 당신은 또한 지정된 초기화를 사용할 수 있습니다

SDL_Color color = {255, 255, 255}; 

. 당신이 선언 후 구조체의 값을 변경하려면

, 당신은 구성원 값 멤버를 변경해야합니다 :

SDL_Color color; 
color.r = 255; 
color.g = 255; 
color.b = 255; 
+0

당신이 할 수있는 일은 다음과 같습니다 :'정적 인라인 SDL_Color mk_SDL_Color (int r, int g, int b) {SDL_Color const c = {r, g, b}; return c;}'SDL_color color처럼 사용할 수 있습니다; color = mk_SDL_Color (255,255,255);'. – datenwolf

0

난 당신이하지 할당에 만 변수의 초기화에 중괄호의 표현을 사용할 수 있습니다 생각 :

초기화 :

SDL_Color color = { 255, 255, 255 }; // By the way, maybe set also color.a 

할당 (회원에 의한 회원) :

SDL_Color color; 
color.r = 255; 
color.g = 255; 
color.b = 255; 
color.a = 255; 

구조체 초기화에 대한 자세한 내용은을 참조하십시오..

관련 문제