使用clang编译时没有警告.
typedef struct {
int option;
int value;
} someType;
someType *init(someType *ptr) {
*ptr = (someType) {
.option = ptr->option | ANOTHEROPT,
.value = 1
};
return ptr;
}
int main()
{
someType *typePtr = init( &(someType) {
.option = SOMEOPT
});
// do something else with typePtr
}
Run Code Online (Sandbox Code Playgroud)
这甚至是有效的C吗?
如果是这样的话:复合文字的生命周期是多少?