我正在编写一个仿真器,并决定在结构体中控制输入/输出仿真:
struct callbacks
{
short LastFrequency = 9000;
int *MMIO_RANGE1;
short Cycle_LN = 65535 / LastFrequency;
const char *STATUS_FLAGS[] =
{
"ACK",
"NO_VIB",
"DATA",
"BYTEPACK",
"WORDPACK"
};
}
上面的代码对我来说看起来很好,似乎遵守了所有的规则…但是我得到了上面标题所述的错误信息。我四处搜索了一下,人们说这个错误意味着不同的东西……但它是什么呢?
问题指向"LastFrequency"
两件事:添加一个5
和一个;
还有:确保使用-std=c++11
(或-std=c++0x
对于旧的g++版本,或您选择的编译器的等效选项)进行编译,因为类内初始化器是c++ 11的特性。
大警告:此代码不支持gcc 4.6,需要gcc>= 4.7.3
struct callbacks
{
short LastFrequency = 9000;
int *MMIO_RANGE1;
short Cycle_LN = 65535 / LastFrequency;
const char *STATUS_FLAGS[5] = // <-- 5 here
{
"ACK",
"NO_VIB",
"DATA",
"BYTEPACK",
"WORDPACK"
};
}; // <-- ; here
int main()
{
}
<<p> 生活例子/strong>。