相关疑难解决方法(0)

作为参数传递的复合文字的生命周期是多少?

使用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)
  1. 这甚至是有效的C吗?

  2. 如果是这样的话:复合文字的生命周期是多少?

c struct compound-literals

7
推荐指数
1
解决办法
593
查看次数

标签 统计

c ×1

compound-literals ×1

struct ×1