-4

私はエミュレーターを書いていて、構造体内で入出力エミュレーションを制御することにしました:

struct callbacks
{
short LastFrequency = 9000;
 int *MMIO_RANGE1;
 short Cycle_LN = 65535 / LastFrequency;
 const char *STATUS_FLAGS[] =
 {
   "ACK",
   "NO_VIB",
   "DATA",
   "BYTEPACK",
   "WORDPACK"
 };
}

上記のコードは私には問題ないように見え、すべてのルールに従っているように見えます...しかし、上記のタイトルに記載されているエラーメッセージが表示されます。私は周りを検索し、人々はエラーが別のことを意味すると言います.しかし、それは何ですか?

問題は「LastFrequency」に向けられています。

4

1 に答える 1

4

2つのこと:a5とaを追加;

また、クラス内初期化子は C++11 の機能であるため、必ず-std=c++11(または-std=c++0x古い g++ バージョンの場合、または選択したコンパイラの同等のオプションで) コンパイルしてください。

大きな警告:このコードは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() 
{

}

ライブの例

于 2014-07-28T19:17:46.933 に答える