我正在用SDL库在C中创建一个图形客户端,当我想设置我的SDL_Color
类型时,我遇到了一个问题。
我宣布我的变量为
SDL_Color color;
color = {255, 255, 255};
/* rest of code */
然后gcc告诉我:
25:11:错误:“{”标记颜色= {0,0,0}之前的预期表达式;
我在一些操作符重载的情况下找到了很好的C++案例的答案,但恐怕我真的不知道如何在C中修复这个问题。
发布于 2016-06-13 08:02:08
您不能为这样的结构分配值。您只能这样做来初始化您的结构:
SDL_Color color = {255, 255, 255};
还可以使用指定的初始化程序:
SDL_Color color = {.r = 255, .g = 255, .b = 255};
如果要在结构声明后更改其值,则必须按成员更改值成员:
SDL_Color color;
color.r = 255;
color.g = 255;
color.b = 255;
发布于 2016-06-13 08:04:01
我认为只有在变量初始化时才能使用大括号中的表达式,而不能在赋值中使用:
初始化:
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;
请参阅有关如何根据C语言标准初始化结构中的结构初始化的更多信息。
发布于 2016-06-13 08:03:13
这在你的案例中有效吗:?
https://stackoverflow.com/questions/37784238
复制相似问题