我已经定义了一个结构
struct Pixel { uint8_t r, g, b; };
我有一个函数
void setPixel(int x, int y, const Pixel& color);
我必须为 setPixel()
函数输入什么颜色值才能使其正常工作?不知道该如何定义。
我在这里错过了什么?
最佳答案
查看为您要调用的函数提供的原型(prototype)。
void setPixel(int x, int y, const Pixel& color);
观察:
x
需要一个参数,一个 inty
需要一个参数,一个 int- 它需要一个
color
参数,一个Pixel
,
它恰好是一个引用参数,但这并不是直接相关的
所以首先,任何超过三个参数的调用都不能工作。
其次,你需要给出三个正确类型的参数,前两个是int类型,可以是右值。您的 x
和 y
可能没问题,如果它们是 int,如
int x = 5;
int y = 5;
但是,这可能会有点困惑,因为在您要调用的函数内部和外部使用相同的名称。所以我推荐
int outsideX = 5;
int outsideY = 5;
第三个参数是一个引用参数,需要一个类型为Pixel
的实际(常量)变量。您需要设置一个。
Pixel outsideColor;
outsideColor.r = 255;
outsideColor.g = 0;
outsideColor.b = 255;
// this will be bright magenta
完成这些准备后,您可以将函数调用为
setPixel(outsideX, outsideY, outsideColor);
关于c++ - 结构像素颜色值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46646911/