【发布时间】:2020-11-15 19:22:16
【问题描述】:
假设如果定义一个结构为并定义一个数组:
typedef struct
{
BYTE rgbtRed;
BYTE rgbtGreen;
BYTE rgbtBlue;
} __attribute__((__packed__))
RGBTRIPLE;
是否可以制作一个可以取 rgbtBlue / rbgtGreen / rgbtRed 值的变量?
喜欢:
int main()
{
RGBTRIPLE image[2];
VARIABLE = ??;
RGBTRIPLE image_1[0].VARIABLE = func(image[0].VARIABLE);
}
RGBTRIPLE func(RGBTRIPLE image[0].VARIABLE)
{
image[0].VARIABLE = 255;
return image[0].VARIABLE;
}
我想创建一个函数,它可以输入 image[0].rgbtRed、image[0].rgbtGreen 和 image[0].rgbtBlue,然后单独修改这些值。在这里,目标是将所有值更改为 255 以在我不知道如何定义的 VARIABLE 的帮助下制作一个白色像素。基本上,我希望变量引用已经定义的结构,首先获取 rgbtRed 的值,然后是 rgbtGreen,最后是 rgbtBlue。
【问题讨论】:
-
不清楚你在做什么。请修改问题以显示您知道如何执行的 3 个单独的功能,并询问是否有更好的方法。
-
除非该函数需要同时知道其他两个组件的值,否则您可以拥有
image[0].rgbtRed = myFunc(image[0].rgbtRed);并依次处理每个组件。 -
使用一个数组成员,而不是单个结构成员。
标签: c variables optimization struct