首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在C中初始化SDL_Color?

如何在C中初始化SDL_Color?
EN

Stack Overflow用户
提问于 2016-06-13 07:44:25
回答 3查看 7.3K关注 0票数 3

我正在用SDL库在C中创建一个图形客户端,当我想设置我的SDL_Color类型时,我遇到了一个问题。

我宣布我的变量为

代码语言:javascript
运行
复制
SDL_Color color;
color = {255, 255, 255};
/* rest of code */

然后gcc告诉我:

25:11:错误:“{”标记颜色= {0,0,0}之前的预期表达式;

我在一些操作符重载的情况下找到了很好的C++案例的答案,但恐怕我真的不知道如何在C中修复这个问题。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-06-13 08:02:08

您不能为这样的结构分配值。您只能这样做来初始化您的结构:

代码语言:javascript
运行
复制
SDL_Color color = {255, 255, 255};

还可以使用指定的初始化程序:

代码语言:javascript
运行
复制
SDL_Color color = {.r = 255, .g = 255, .b = 255};

初始化结构的3种方法

如果要在结构声明后更改其值,则必须按成员更改值成员:

代码语言:javascript
运行
复制
SDL_Color color;
color.r = 255;
color.g = 255;
color.b = 255;
票数 4
EN

Stack Overflow用户

发布于 2016-06-13 08:04:01

我认为只有在变量初始化时才能使用大括号中的表达式,而不能在赋值中使用:

初始化:

代码语言:javascript
运行
复制
SDL_Color color = { 255, 255, 255 };  // By the way, maybe set also color.a

指派(成员一人):

代码语言:javascript
运行
复制
SDL_Color color;
color.r = 255;
color.g = 255;
color.b = 255;
color.a = 255;

请参阅有关如何根据C语言标准初始化结构中的结构初始化的更多信息。

票数 3
EN

Stack Overflow用户

发布于 2016-06-13 08:03:13

这在你的案例中有效吗:?

颜色

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37784238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档