Jer*_*ska 0 c struct expression
我定义了一个结构体:
struct Low {
double high;
double low;
double fraction; // = (Low.high - Low.low) / Low.high;
double percentage; // = Low.fraction * 100;
} low2015, low2018, low2021, low2022;
Run Code Online (Sandbox Code Playgroud)
这些评论暗示了我的意思。我想在结构体的定义块中引入一个表达式,Low这样我就不必手动进行my_struct.fractionand的赋值my_struct.percentage
low2021.high = 64854;
low2021.low = 28805;
low2021.fraction = (low2021.high - low2021.low) / low2021.high;
low2021.percentage = low2021.fraction * 100;
Run Code Online (Sandbox Code Playgroud)
对于所有四个变量,即low2015, low2018, low2021, low2022。我怎样才能做到这一点?
该结构足够小,可以按值返回。考虑添加一个功能MakeLow()。
struct Low {
double high;
double low;
double fraction;
double percentage;
};
static inline struct Low MakeLow(double high, double low) {
return (struct Low) {
.high = high,
.low = low,
.fraction = (high - low) / high,
.percentage = (high - low) / high * 100,
};
}
Run Code Online (Sandbox Code Playgroud)
用法:
struct Low low2021 = MakeLow(64854, 28805);
Run Code Online (Sandbox Code Playgroud)