小编Jam*_*ott的帖子

是否可以将结构变量作为函数参数传递而无需事先定义它?

我有两个结构定义为(in 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);
Run Code Online (Sandbox Code Playgroud)

然后,我有以下main.c工作:

hsv hsvCol = {i/255.0, 1, 1};
rgb col = hsv2rgb(hsvCol);
Run Code Online (Sandbox Code Playgroud)

我希望能够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});
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  1. 我可以做我想做的事情(但显然是以不同的方式)?

  2. 如果是1,我该怎么做呢?

c structure compound-literals

5
推荐指数
1
解决办法
82
查看次数

标签 统计

c ×1

compound-literals ×1

structure ×1