【发布时间】:2021-06-15 12:35:34
【问题描述】:
以下是否将列表清零然后添加第一个条目?还是只是将第一个条目添加到handlers?
Logger = (struct logger) {.level=INFO, .format=DEFAULT_FORMAT, .num_handlers=1, .handlers[0]=stdout};
例如,这样做:
Logger.handlers = {0};
Logger.handlers[0] = stdout;
还是不涉及清算?
【问题讨论】:
-
如果
.handlers[]有多个元素,则.handlers[0]=stdout和所有其他元素默认初始化为零。见:C11 Standard § 6.7.9 Initialization (p21) -
@DavidC.Rankin 你能把它作为答案发布吗?因为还有另一个答案正好相反。另外,请注意这是一个复合文字,而不是变量初始化。但它继承了语义。
-
@Barmar 当然,请稍等,我会写下来。
标签: c compound-literals