我有一个像这样的非常简单的颜色结构
struct {
unsigned char red;
unsigned char green;
unsigned char blue;
unsigned char alpha;
} RGBA;
现在在某些函数中,我想返回这样的结构。
但我不知道该怎么做。我能想到的就是创建一个本地结构,分别填充每个字段,然后返回它。
RGBA localStructure;
localStructure.red = r;
localStructure.green = g;
localStructure.blue = b;
localStructure.alpha = a;
return localStructure;
我真的很想做这样的事情
return RGBA(r,g,b,a);
有没有办法在 C/C++ 中实现这一点?
最佳答案
首先,在您的第一个片段中,RGBA 是一个类型为未命名结构的对象,我认为这不是您想要的。您的意思可能是:
typedef struct { ... } RGBA; /* what a lot of C programmers do */
或
struct RGBA { ... }; /* probably what you meant */
无论如何,要回答你的问题,给它一个构造函数!
struct RGBA {
RGBA(unsigned char r, unsigned char g, unsigned char b, unsigned char a) : red(r), green(g), blue(b), alpha(a) {
}
unsigned char red;
unsigned char green;
unsigned char blue;
unsigned char alpha;
};
然后你可以这样写:
return RGBA(r,g,b,a);
关于c++ - 返回一个结构而不初始化它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5005448/