c++ - typedef struct with undeclared/undefined type -


i reading webrtc source code vad, , confused code

typedef struct webrtcvadinst vadinst; 

i have searched code webrtcvadinst , did not find source related struct webrtcvadinst. on other hand, did find vadinst.

typedef struct vadinstt_ {     int vad;     int32_t downsampling_filter_states[4];     ...     ...     int init_flag; } vadinstt; 

and

vadinst* webrtcvad_create() {   vadinstt* self = (vadinstt*)malloc(sizeof(vadinstt));    webrtcspl_init();   self->init_flag = 0;    return (vadinst*)self; } 

and, compiles successfully.

how work?

the typedef combines forward declare , typedef in single line.

in c++ written

struct webrtcvadinst;            // forward declare struct  typedef webrtcvadinst vadinst;   // , introduce alternate name 

there no problem in either language form pointer unknown struct, pointers structs (and classes in c++) required have same size.

so code shown never uses struct (if exists) pointer (vadinst*). , that's ok language-wise.


Comments

Popular posts from this blog

ubuntu - PHP script to find files of certain extensions in a directory, returns populated array when run in browser, but empty array when run from terminal -

php - How can i create a user dashboard -

javascript - How to detect toggling of the fullscreen-toolbar in jQuery Mobile? -