構造体のtypedef C ++によって引き起こさ期待修飾されていない-idの前に...エラー

免責事項:この記事はブロガーオリジナル記事ですが、許可ブロガーなく再生してはなりません。https://blog.csdn.net/wangfenghui132/article/details/78273848

環境のUbuntu 14.04 

小さなC ++プログラム、構造体の定義のtypedef構造体structName {...}を使用して書き込むには、メンバーは、この割り当ての内部structNameときにエラープロンプトが表示される前に、結果が予想される修飾されていないIDを求めていますエラー。C ++では、彼は非常に明確に、時に構造体の定義typedefを不要と述べました。だから、Cのコーディングとの整合性のために、私はtypedefを加え、次いで、このような間違いを投げ。分かりません。

そして、後に慎重にチェックし、C / Cの元研究は++忘れていたことがわかりました。次のように私の構造が定義されています

typedefは構造体スタック{

    typedefは構造体のリンク{

        void *型のデータ。

        リンク*次の;

        空のinitialize(void *型のデータ、次のリンク*);

     } * 頭;

     空のinitialize();

     空プッシュ(void *型データ);

     void *型PEEK();

     void *型ポップ();

     空のクリーンアップ();

}。

いくつかの情報へのアクセスは、まず自分自身のコードを書くための間違った場所について話しています。

typedefは構造体スタック{

....

}。

C ++で等価} {構造体スタックを定義し、その後のtypedefを使用してstackAnotherNameスタック構造体。stackAnotherNameというエイリアスの元の定義に構造体スタック。そして、私の最後のプログラム、および別名構造体スタック、typedefは構造体スタックのようなコードの行を書くと同等のものを与えていない、ので、この場所が間違っています。

この場所で

    typedefは構造体のリンク{

        void *型のデータ。

        リンク*次の;

        空のinitialize(void *型のデータ、次のリンク*);

     } * 頭;

それは、エイリアスがヘッド呼び出されると、構造体のリンク*を再生することですので、私は頭の中でメンバ変数を参照するたびに期待修飾されていないプロンプトが表示されます。リンクのデータ構造を定義し、構造体のリンクのtypedef使用する機能*ヘッドのような、実際には-id前に.....

正しいコードは次のようにする必要があり、定義された私のメンバ変数のヘッドがあります。問題はありません。

typedefは構造体スタック{

    構造体のリンク{

        void *型のデータ。

        リンク*次の;

        空のinitialize(void *型のデータ、次のリンク*);

     } * 頭;

     空のinitialize();

     空プッシュ(void *型データ);

     void *型PEEK();

     void *型ポップ();

     空のクリーンアップ();

}スタック;

おすすめ

転載: blog.csdn.net/wangfenghui132/article/details/78273848