2012-04-25 8 views
18

enter image description hereこれを解決できませんでした。 私はキューを実装しています。 '='、 '、'、 ';'、 'asm'または '__attribute__'の前に '。'トークン

expected '=', ',', ';', 'asm' or '__attribute__' before '.' token

は、その後、私は簡単なプログラムを書いたが、同じ問題が解消されない:完全なコードを書いた後、私はエラーが以下のとおりでした。これを解決する方法を理解できませんでした。私は stackoverflow.com and google.comで解決策を見てきましたが、まだ解決できませんでした。助けてください。

私はinitialize globallyQ.front = Q.rear = Any value

#include <stdio.h> 
#include <stdlib.h> 
struct Queue 
{ 
    int front, rear; 
    int queue[10] ; 
}; 
struct Queue Q; 
Q.front = 0; 
Q.rear = 0; 

int main() 
{ 
    return 0; 
} 
+0

おかげAロットみんな..私は答えを得ました。それは私のために学んだ教訓のようなものです。いずれにせよ、皆さんは最高です。 –

答えて

12

Q.front = 0;は単純なイニシャライザではなく、実行可能なコードです。それは関数の外部で発生することはできません。 Qには適切なイニシャライザを使用してください。

struct Queue Q = {0, 0}; 

または名前付き初期化子(すべてのコンパイラでは利用できない、そしてまだのみCで)構文で:

struct Queue Q = {.front = 0, .rear = 0}; 
+0

ええ、私はコンセプトを理解しました。ありがとうA Lot –

+0

ありがとう助けてくれました – achoora

5

あなたはグローバルスコープでQ.front = 0; Q.rear = 0;を使用して変数を初期化することはできませんしたいと思います。あなたのケースでは、これらのステートメントはmainの中にあるはずです。

3

@Naveenは、あなたがその構造体のメンバに割り当てることはできません言ったようにグローバルスコープにあります。 Cのバージョンによっては、これを行うことができますけれども:

struct Queue q = {0,0}; 

または

struct Queue q = {.front = 0, .rear = 0 }; 
関連する問題