首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有未声明/未定义类型的ty胡枝子f结构

具有未声明/未定义类型的ty胡枝子f结构
EN

Stack Overflow用户
提问于 2017-08-20 12:01:44
回答 1查看 725关注 0票数 2

我正在阅读关于VAD的webrtc源代码,并且对代码感到困惑。

代码语言:javascript
复制
typedef struct WebRtcVadInst VadInst;

我搜索了关于 WebRtcVadInst 的所有代码,没有找到任何与struct WebRtcVadInst相关的源代码。另一方面,我确实发现了一些关于VadInst的东西。

代码语言:javascript
复制
typedef struct VadInstT_ {
    int vad;
    int32_t downsampling_filter_states[4];
    ...
    ...
    int init_flag;
} VadInstT;

代码语言:javascript
复制
VadInst* WebRtcVad_Create() {
  VadInstT* self = (VadInstT*)malloc(sizeof(VadInstT));

  WebRtcSpl_Init();
  self->init_flag = 0;

  return (VadInst*)self;
}

而且,它成功地编译。

它怎麽工作?

EN

回答 1

Stack Overflow用户

发布于 2017-08-20 12:43:16

Ty胡枝子f在一行中组合了一个前向声明和一个ty胡枝子。

在C++中,可以编写

代码语言:javascript
复制
struct WebRtcVadInst;            // forward declare a struct

typedef WebRtcVadInst VadInst;   // and introduce an alternate name

在这两种语言中,形成指向未知结构的指针没有问题,因为指向结构(以及C++中的类)的所有指针都必须具有相同的大小。

因此,您显示的代码从不使用结构本身(如果它甚至存在的话),而只使用指针(VadInst*)。就语言而言,这是可以的。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45781910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档