我有两个这样定义的结构(在color.h
):
typedef struct rgb {
uint8_t r, g, b;
} rgb;
typedef struct hsv {
float h, s, v;
} hsv;
hsv rgb2hsv(rgb color);
rgb hsv2rgb(hsv color);
然后我有以下main.c
工作:
hsv hsvCol = {i/255.0, 1, 1};
rgb col = hsv2rgb(hsvCol);
我希望能够只hsvCol
在参数中创建变量,hsv2rgb
而不必创建变量并将其作为参数传递。
我已经尝试了以下每一项(代替上面的两行),遗憾的是没有一个编译:(
rgb col = hsv2rgb({i/255.0, 1, 1});
rgb col = hsv2rgb(hsv {i/255.0, 1, 1});
rgb col = hsv2rgb(hsv hsvCol {i/255.0, 1, 1})
rgb col = hsv2rgb(struct hsv {i/255.0, 1, 1});
我的问题是:
我可以做我想做的事吗(但显然是以不同的方式)?
如果是1,我该怎么做?