这是来自 OBS Studio under GitHub 的代码摘录.我未能理解以下内容:
1) struct 关键字后跟结构名称 (obs_encoder_info) 和标签 (opus_encoder_info) 吗?
2) 结构变量如何以 .(dot) 为前缀?它是另一个结构的成员变量吗?
struct obs_encoder_info opus_encoder_info = {
.id = "ffmpeg_opus",
.type = OBS_ENCODER_AUDIO,
.codec = "opus",
.get_name = opus_getname,
.create = opus_create,
.destroy = enc_destroy
};
最佳答案
这是 designated initializers (C++20 起)。
因此它声明了一个名为opus_encoder_info
的对象,类型为obs_encoder_info
,其数据成员id
初始化为值"ffmpeg_opus"
,type
初始化为值OBS_ENCODER_AUDIO
,依此类推。
关于c++ - 以 .(点)为前缀的结构变量名称需要解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56746118/