19

ここに画像の説明を入力これを解決できませんでした..キューを実装しています。完全なコードを書いた後、以下にリストされているエラーが発生しました。

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

次に、簡単なプログラムを書きましたが、同じ問題が続きます。これを解決する方法を理解できませんでした。解決策をたくさん調べましstackoverflow.com and google.comたが、まだ解決できませんでした。助けてください。

私はしたいと思いますinitialize globally Q.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;
}
4

3 に答える 3

16

Q.front = 0;単純な初期化子ではなく、実行可能なコードです。関数の外では発生しません。に適切な初期化子を使用しますQ

struct Queue Q = {0, 0};

または名前付きイニシャライザ構文 (すべてのコンパイラで利用できるわけではなく、まだ C でのみ利用できます):

struct Queue Q = {.front = 0, .rear = 0};
于 2012-04-25T07:14:37.993 に答える
5

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

于 2012-04-25T07:14:11.983 に答える
2

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

struct Queue q = {0,0};

また

struct Queue q = {.front = 0, .rear = 0 };
于 2012-04-25T07:17:02.643 に答える