【发布时间】:2010-07-18 16:54:18
【问题描述】:
是否可以在 C 中创建“内联”结构?
typedef struct {
int x;
int y;
} Point;
Point f(int x) {
Point retval = { .x = x, .y = x*x };
return retval;
}
Point g(int x) {
return { .x = x, .y = x*x };
}
f 有效,g 无效。同样适用于函数调用:
float distance(Point a, Point b) {
return 0.0;
}
int main() {
distance({0, 0}, {1, 1})
}
是否有可能在不使用额外临时变量的情况下创建这些结构(我猜编译器会对其进行优化,但可读性也很重要)?
【问题讨论】: