我有一个返回联合的函数,调用者知道该联合如何处理。有没有一种有效的一线退还工会的方法?我现在应该做什么:
typedef union { int i; char *s; double d; } FunnyResponse;
FunnyResponse myFunc () {
// Tedious:
FunnyResponse resp;
resp.d = 12.34;
return resp;
}
int main () {
printf ("It's this: %g\n", myFunc().d);
}
这会编译并运行,但是如果可能的话,我希望有一条“返回”行。有任何想法吗?
最佳答案
您可以使用C99的designated initializers和compound literals:
return (FunnyResponse){ .d = 12.34 };
对于ANSI C89(Microsoft的C编译器),您必须做现在要做的事情才能获得相同的效果。
关于c - 在C中返回 union 的有效方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58226914/