我有一個結構AVFilter,如何訪問嵌套結構變量
typedef struct AVFilter
{
const char *name;
const char *description;
const AVClass *priv_class;
int priv_size;
int (*init)(AVFilterContext *ctx);
void (*uninit)(AVFilterContext *ctx);
int (*query_formats)(AVFilterContext *);
const AVFilterPad *inputs;
const AVFilterPad *outputs;
int (*process_command)(AVFilterContext *, const char *cmd, const char *arg, char *res, int res_len, int flags);
} AVFilter;
我訪問像sturctur變量,
AVFilter avfilter_vsrc_color = {
avfilter_vsrc_color.name = "color",
avfilter_vsrc_color.description = NULL_IF_CONFIG_SMALL("Provide an uniformly colored input."),
avfilter_vsrc_color.priv_class = &color_class, // error here
avfilter_vsrc_color.priv_size = sizeof(TestSourceContext),// error here
avfilter_vsrc_color.init = color_init,// error here
avfilter_vsrc_color.uninit = uninit,// error here
avfilter_vsrc_color.query_formats = color_query_formats,// error here
avfilter_vsrc_color.inputs = NULL,// error here
avfilter_vsrc_color.outputs = color_outputs,// error here
avfilter_vsrc_color.process_command = color_process_command // error here
};
我不知道如何訪問priv_class.Please幫我解決這個問題
如果我不喜歡這樣,
AVFilter avfilter_vsrc_color=
{
.name = "color", //error
.description = NULL_IF_CONFIG_SMALL("Provide an uniformly colored input."),
.priv_class = &color_class,
.priv_size = sizeof(TestSourceContext),
.init = color_init,
.uninit = uninit,
.query_formats = color_query_formats,
.inputs = NULL,
.outputs = color_outputs,
.process_command = color_process_command
};
我米得到錯誤一樣,
2>c:\users\awki6\desktop\ffmpeg\libavfilter\vsrc_testsrc.cpp(271): error C2143: syntax error : missing '}' before '.'
2>c:\users\awki6\desktop\ffmpeg\libavfilter\vsrc_testsrc.cpp(271): error C2143: syntax error : missing ';' before '.'
什麼問題?你想對'priv_class'做什麼?什麼是「AVClass」? – Beta
AVClass是另一種結構,priv_class是指向AVCLass的指針。 – JAYANTHI
我知道。我在其他問題中找到了'AVClass'的定義。你還沒有回答我的其他問題。你似乎在使用逗號,你應該使用分號。您仍然在發佈錯誤消息而不告訴我們哪些行對應於行號。你已經編輯了這個問題來引用'color_class'而不解釋它是什麼。在你走路之前,你似乎試圖跑步。投票結束。 – Beta