我有一个非常简单的颜色结构
struct {
unsigned char red;
unsigned char green;
unsigned char blue;
unsigned char alpha;
} RGBA;
Run Code Online (Sandbox Code Playgroud)
现在在某个函数中,我想返回这样的结构.
但我无法弄清楚如何做到这一点.我能想到的只是创建一个局部结构,分别填充每个字段,然后返回它.
RGBA localStructure;
localStructure.red = r;
localStructure.green = g;
localStructure.blue = b;
localStructure.alpha = a;
return localStructure;
Run Code Online (Sandbox Code Playgroud)
我真的想做这样的事情
return RGBA(r,g,b,a);
Run Code Online (Sandbox Code Playgroud)
有没有办法在C/C++中实现这一目标?
首先,在你的第一个片段中,RGBA是一个对象,其类型是一个未命名的结构,我认为这不是你想要的.你可能意味着:
typedef struct { ... } RGBA; /* what a lot of C programmers do */
Run Code Online (Sandbox Code Playgroud)
要么
struct RGBA { ... }; /* probably what you meant */
Run Code Online (Sandbox Code Playgroud)
无论如何,要回答你的问题,给它一个构造函数!
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;
};
Run Code Online (Sandbox Code Playgroud)
然后你可以写:
return RGBA(r,g,b,a);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
906 次 |
| 最近记录: |