gcc在以下代码中编译正确
enum AVMediaType {
AVMEDIA_TYPE_UNKNOWN = -1,
AVMEDIA_TYPE_VIDEO,
AVMEDIA_TYPE_AUDIO,
AVMEDIA_TYPE_DATA,
AVMEDIA_TYPE_SUBTITLE,
AVMEDIA_TYPE_ATTACHMENT,
AVMEDIA_TYPE_NB
};
static int wanted_stream[AVMEDIA_TYPE_NB]={
[AVMEDIA_TYPE_AUDIO]=-1, // Line 234
[AVMEDIA_TYPE_VIDEO]=-1,
[AVMEDIA_TYPE_SUBTITLE]=-1,
};
但是g ++会抛出以下错误
playerthread.cpp:234: error: expected primary-expression before '[' token
这里有什么问题?
答案 0 :(得分:1)
g ++不支持这些指定的初始值设定项,但它们是由gcc支持的。我不确定它是否完全符合C ++标准。如果您将代码简化为非常简单,您可以看到相同的内容:
int array[10] = { [1] = 5 };
在C语言中很好,而不是C ++。